标签: cdata

我如何在 XSL 中的 javascript for 循环中获得一个 less 来工作?

我正在使用 CDATA 来转义脚本,但在 IE8 的调试器中,我仍然在 for 循环条件中收到此消息:“预期的 ')'”。我假设它仍然认为 ; 在<由 CDATA 生成的结束循环条件中。

我的 XSL 模板中的原始脚本:

<script type="text/javascript" language="javascript">  
<![CDATA[
    function submitform(form){
        var oErrorArray = new Array();
        for (i=0;i<form.length;i++) 
        eval("oErrorArray["+i+"]=oError"+i);
        var goForm = true;
        for(i=0;i<form.length;i++) {
            oErrorArray[i].innerHTML = "";
            if(form[i].value="")){
                oErrorArray[i].innerHTML = "Error - input field is blank";
                goForm = false;
            }           
        }
        if(goForm == true) form.submit();
    }
    function resetform(form){
        form.reset();
    }
]]>
</script>
Run Code Online (Sandbox Code Playgroud)

转换后生成的代码(来自 IE8 调试器)

<script type="text/javascript" language="javascript">
    function submitform(form){
        var oErrorArray = new Array(); …
Run Code Online (Sandbox Code Playgroud)

javascript xml xslt loops cdata

5
推荐指数
1
解决办法
5988
查看次数

innerHTML 将 CDATA 转换为注释

我正在尝试使用 javascript 将一些 HTML 插入到页面中,并且我插入的 HTML 包含 CDATA 块。

我发现在 Firefox 和 Chrome 中,CDATA 正在转换为注释。

HTML 不在我的控制之下,所以我很难避免使用 CDATA。

以下测试用例,当页面上有一个 id 为“test”的 div 时:

document.getElementById('test').innerHTML = '<![CDATA[foo]]> bar'
Run Code Online (Sandbox Code Playgroud)

导致以下 HTML 被应用到“测试”div:

<!--[CDATA[foo]]--> bar
Run Code Online (Sandbox Code Playgroud)

有什么方法可以使用javascript将包含CDATA的HTML逐字插入到文档中吗?

html javascript dom cdata

5
推荐指数
1
解决办法
3967
查看次数

如何在 XML 中包含未解析的外部实体值?

我在这个例子中有一个 xml 语法错误:

<?xml version="1.0"?>
<!DOCTYPE foo [
    <!ENTITY rules SYSTEM "file://data.txt">
]>
<extract>
    <data>&rules;</data>
</extract>
Run Code Online (Sandbox Code Playgroud)

其中 data.txt 包含:

1    <15024
2    >15023
Run Code Online (Sandbox Code Playgroud)

但当然我有语法错误,因为文本文件( < > )中有 wml 特殊字符。那么如何将这些数据包含为未解析的数据呢?

我希望有这样的结果:

<?xml version="1.0"?>
<extract>
    <data><![CDATA[1    <15024
2    >15023]]></data>
</extract>
Run Code Online (Sandbox Code Playgroud)

xml include cdata

5
推荐指数
1
解决办法
1158
查看次数

如何使用 ElementTree python 在 xml 解析器中处理 CDATA?

我刚开始使用 python 并尝试使用 ElementTree 解析 xml 文件。但问题是我有一个带有CDATA 的标签,它在tree.write之后被删除

所以基本上我有这个标签

<content><![CDATA[eclipse.ver=1&encoding/ <project>=UTF-8${line.sep}]]></content>
Run Code Online (Sandbox Code Playgroud)

这是更改为

<content>eclipse.ver=1&encoding/&lt;project&gt;=UTF-8${line.sep}</content>
Run Code Online (Sandbox Code Playgroud)

我试过谷歌,但不是很有帮助。那么任何人都可以帮助我,我怎样才能在标签中获得完全相同的内容?

python xml cdata elementtree xml-parsing

5
推荐指数
1
解决办法
2605
查看次数

如何使用 python 请求和 bs4 (BeautifulSoup) 模块使用 cookie 和 javascript“javax.faces.ViewState”CDATA 在 .jsf 网站中进行网页抓取?

我想自动从该网站提取数据:

\n

http://www.snirh.gov.br/hidroweb/publico/medicoes_historicas_abas.jsf

\n

提取我想要的数据应遵循的步骤的说明:

\n

从上面的 url 开始,单击“S\xc3\xa9ries Hist\xc3\xb3ricas”。您应该看到一个页面,其中包含带有一些输入的表单。就我而言,我只需要在“C\xc3\xb3digo da Esta\xc3\xa7\xc3\xa3o”输入中输入车站代码。假设电台代码是 938001,插入该代码并点击“Consultar”。现在您应该看到很多复选框。选中“Selecionar”下面的一项,该选项将选中所有复选框。假设我不需要各种数据,我想要降雨率和流量,我只选中“Chuva”下面的复选框和“Vaz\xc3\xa3o”下面的另一个复选框。之后需要选择要下载的文件类型,选择“Arquivo Texto (.TXT)”,这是.txt格式。之后需要生成文件,为此单击“Gerar Arquivo”。之后就可以下载文件,只需单击“Baixar Arquivo”即可。

\n

注意:该网站目前版本为v1.0.0.12,以后可能会有所不同。

\n

我有一个车站代码列表。想象一下,这些操作执行超过 1000 次会有多糟糕?!我想自动化这个!

\n

巴西的许多人一直在尝试从该网站自动提取数据。我发现的一些:

\n

非常旧的:https://www.youtube.com/watch?v =IWCrC0MlasQ

\n

其他:\n https://pt.stackoverflow.com/questions/60124/gerar-e-baixar-links-programaticamente/86150#86150

\n

https://pt.stackoverflow.com/questions/282111/r-download-de-dados-do-portal-hidroweb

\n

我发现的早期尝试,但这也不起作用,因为该网站已更改: https: //github.com/duartejr/pyHidroWeb

\n

所以很多人都需要这个,并且由于网站的更新,上述解决方案都没有更有效。

\n

我不想使用 selenium,与使用 requests 库的解决方案相比,它很慢,并且需要一个接口。

\n

我的尝试:

\n
#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\nfrom bs4 import BeautifulSoup\nimport requests\nfrom urllib import parse\n\n\nURL = \'http://www.snirh.gov.br/hidroweb/publico/apresentacao.jsf\'\n\ns = requests.Session()\n\nr = s.get(URL)\n\nJSESSIONID = s.cookies[\'JSESSIONID\']\n\nsoup = BeautifulSoup(r.content, "html.parser")\n\njavax_faces_ViewState = soup.find("input", {"type": "hidden", "name":"javax.faces.ViewState"})[\'value\']\n\n\nd = {}\nd[\'menuLateral:menuForm\'] …
Run Code Online (Sandbox Code Playgroud)

python jsf cdata web-scraping python-requests

5
推荐指数
1
解决办法
4396
查看次数

XHTML实体编码是否在XML文档中有效,只要它们包含在CDATA标记内?

这是一个有效(格式良好)的XML文档吗?

<?xml version="1.0" encoding="UTF-8" ?> 
<outer>
  <inner>&copy;</inner>
</outer>
Run Code Online (Sandbox Code Playgroud)

问题在于HTML/XHTML"©"实体编码在XML文档中是否有效,其中没有DTD或模式来定义它.表达上述内容的另一种方式是这样说:

<?xml version="1.0" encoding="UTF-8" ?> 
<outer>
  <inner>&#169;</inner>
</outer>
Run Code Online (Sandbox Code Playgroud)

这似乎是使用UTF-8编码的有效XML.

但这是否有效:

<?xml version="1.0" encoding="UTF-8" ?> 
<outer>
  <inner><![CDATA[&copy;]]></inner>
</outer>
Run Code Online (Sandbox Code Playgroud)

上述作者打算向XML解析器表明它应该通过上面的版权符号作为字符串"©" 而不是一个正确的Unicode字符.

在这方面,我觉得这句话有点令人困惑:"XML文档的新作者经常误解CDATA部分的目的,错误地认为其目的是"保护"数据在处理过程中不被视为普通字符数据.[但]字符数据是字符数据,无论它是通过CDATA部分还是普通标记表达."(来自维基百科)

我正在分别从第二位作者那里查看一个提议的XML格式,即使标签可以包含数字,它也包装了CDATA部分中的每个标签.

希望XML大师可以帮助消除对CDATA目的的困惑.

谢谢!

xml unicode utf-8 cdata

4
推荐指数
2
解决办法
6952
查看次数

如何从XSLT访问CDATA中的变量?

我正在使用XSLT转换,需要在CDATA部分放置一些数据,并且该值存在于变量中.

查询:如何访问CDATA中的变量?下面给出的样本:

<xsl:attribute name ="attributeName">
<![CDATA[ 
  I need to access some variable here like
   *<xsl:value-of select ="$AnyVarible"/>* 
 ]]>
</xsl:attribute>
Run Code Online (Sandbox Code Playgroud)

如何在CDATA中使用varibale?注意:我不能使用 - > &lt;![CDATA[<xsl:value-of select ="$AnyVarible"/>]]&gt; 提前谢谢.

xslt cdata

4
推荐指数
1
解决办法
1万
查看次数

无法在CDATA中运行JavaScript

我试图在每个浏览器中运行以下HTML:Opera,FF,IE,Chrome

<!DOCTYPE html  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
  <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8">
 </head>
 <body>
  <script>
  <![CDATA[
     alert('Hey!');
  ]]>
  </script>
 </body>
</html>
Run Code Online (Sandbox Code Playgroud)

他们都没有显示警报.Chrome在控制台中记录错误:Uncaught SyntaxError:Unexpected token <.似乎在CDATA宣言中抱怨拳头.Firefox还会记录"语法错误"

w3schools指出这是使用CDATA的方式http://www.w3schools.com/xml/xml_cdata.asp.本网站的其他答案表明了这一点.我究竟做错了什么?我尝试使用命名空间和doctypes,但这并没有改变任何东西.

编辑:我添加了XHTML名称空间和doctype,我最初删除了,问题仍然存在.

html javascript cdata

4
推荐指数
2
解决办法
1万
查看次数

在jax-ws/wsimport中的cdata

我使用wsimport创建了一个soap客户端,我需要将消息中字符串字段内的xml数据发送到Web服务器.我知道我不需要在webservice调用中使用cdata,但webservice需要这个字段在cdata标签中.

问题是如何做到这一点.

要从wsdl生成代码,我使用jaxws-maven-plugin.在maven配置中我使用绑定文件

bindingFiles
   binding Filebinding.xjb /bindingFile
/bindingFiles
Run Code Online (Sandbox Code Playgroud)
jxb:bindings version="2.0"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:tns="urn:uniface:applic:services:BRF_IN"
    xmlns:jxb="http://java.sun.com/xml/ns/jaxb">

    <jxb:globalBindings generateElementProperty="false"/>
    <jxb:bindings scd="//element::tns:DATA">
        <jxb:javaType 
                name="String"                          
                parseMethod="de.xyz.CdataConverter.unmarshal"                      
                printMethod="de.xyz.CdataConverter.marshal"
                />
    </jxb:bindings>
Run Code Online (Sandbox Code Playgroud)

和marshal/unmarschal看起来像这样:

public class CdataConverter {
private static final Pattern PATTERN = Pattern.compile("((?<=\\<\\!\\[CDATA\\[)[\\S\\s]+(?=\\]\\]\\>))");
private static final String CDATA_START = "<![CDATA[";
private static final String CDATA_END = "]]>";
private final static Logger logger =    

Logger.getLogger(LgTestServer.class.getName());

public static String marshal(String input) {
    if (input == null) {
        return null;
    }
    PropertyConfigurator.configure(".\\log4j.properties");
    logger.info("input --------------------->>>>>>>>\n" + input);
    return CDATA_START + input + …
Run Code Online (Sandbox Code Playgroud)

jax-ws cdata wsimport

4
推荐指数
1
解决办法
5120
查看次数

使用SimpleXMLElement读取`<![CDATA [...]]>`中的文本

我正在用SimpleXMLElementPHP 导入RSS源.我的标题和描述有问题.出于某种原因,我从Feed获得的网站将标题和描述放在<![CDATA[...]]>:

<item>
<title><![CDATA[...title...]]></title>
<link>...url...</link>
<description><![CDATA[...title...]]></description>
<pubDate>...date...</pubDate>
<guid>...link...</guid>
</item>
Run Code Online (Sandbox Code Playgroud)

当我var_dump()在SimpleXMLElement上做一个时,我得到(对于这部分):

  [2]=>
  object(SimpleXMLElement)#5 (5) {
    ["title"]=>
    object(SimpleXMLElement)#18 (0) {
    }
    ["link"]=>
    string(95) "...link..."
    ["description"]=>
    object(SimpleXMLElement)#19 (0) {
    }
    ["pubDate"]=>
    string(31) "...date..."
    ["guid"]=>
    string(48) "...link..."
  }
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得的价值 <![CDATA[...]]>读取来自饲料中的标题和描述?

php xml simplexml cdata

4
推荐指数
1
解决办法
1万
查看次数