我经常CDATA
在XML
文件中找到这个奇怪的标签:
<![CDATA[some stuff]]>
Run Code Online (Sandbox Code Playgroud)
我观察到这个CDATA
标签总是在开头,然后是一些东西.
但有时它被使用,有时则不然.我假设它是标记some stuff
那将在之后插入的"数据".但是什么样的数据some stuff
呢?我在XML标签中写的东西不是某种数据吗?
在脚本标签中是否有必要使用CDATA标签,如果是这样的话?
换句话说,何时何地:
<script type="text/javascript">
//<![CDATA[
...code...
//]]>
</script>
Run Code Online (Sandbox Code Playgroud)
比这更好:
<script type="text/javascript">
...code...
</script>
Run Code Online (Sandbox Code Playgroud) 在JavaScript标记和HTML中使用CDATA有什么用?
<script type="text/javascript">
// <![CDATA[
// ]]>
</script>
Run Code Online (Sandbox Code Playgroud) 我想知道是否有任何方法可以]]>
在xml文档的CDATA部分中转义CDATA结束标记().或者,更一般地说,如果在CDATA中使用某些转义序列(但如果它存在,我想它可能只有在逃避开始或结束令牌时才有意义).
基本上,您是否可以在CDATA中嵌入开始或结束标记,并告诉解析器不要解释它,而是将其视为另一个字符序列.
可能你应该重构你的xml结构或你的代码,如果你发现自己试图这样做,但即使我在过去3年左右每天都在使用xml而且我从来没有遇到过这个问题,我想知道是否有可能.只是出于好奇.
编辑:
除了使用html编码...
我注意到,当SimpleXMLElement
在包含那些CDATA标签的文档上使用时,内容始终是NULL
.我该如何解决?
另外,抱歉在这里发布有关XML的垃圾邮件.我一直试图让基于XML的脚本现在工作几个小时......
<content><![CDATA[Hello, world!]]></content>
Run Code Online (Sandbox Code Playgroud)
如果您搜索"SimpleXMLElement cdata",我尝试了第一次点击谷歌,但这不起作用.
我很确定<![CDATA[...]]>
可以在XHTML5中使用各个部分,但是HTML5呢?
我有这个代码来创建和更新xml文件:
<?php
$xmlFile = 'config.xml';
$xml = new SimpleXmlElement('<site/>');
$xml->title = 'Site Title';
$xml->title->addAttribute('lang', 'en');
$xml->saveXML($xmlFile);
?>
Run Code Online (Sandbox Code Playgroud)
这会生成以下xml文件:
<?xml version="1.0"?>
<site>
<title lang="en">Site Title</title>
</site>
Run Code Online (Sandbox Code Playgroud)
问题是:有没有办法用这种方法/技术添加CDATA来创建下面的xml代码?
<?xml version="1.0"?>
<site>
<title lang="en"><![CDATA[Site Title]]></title>
</site>
Run Code Online (Sandbox Code Playgroud) 我如何在XML中存储base64字符串?
您是否使用CDATA在XML中存储base64字符串?它是否有用,因为它允许在字符串中使用<>?
base64是否可以配置,如果它们与XML冲突,你可以告诉它不要使用某些字符?
我正在使用JAXB将我的数据序列化为XML.类代码很简单,如下所示.我想生成包含CDATA块的XML,用于某些Args的值.例如,当前代码生成此XML:
<command>
<args>
<arg name="test_id">1234</arg>
<arg name="source"><html>EMAIL</html></arg>
</args>
</command>
Run Code Online (Sandbox Code Playgroud)
我想在CDATA中包装"source"arg,使其如下所示:
<command>
<args>
<arg name="test_id">1234</arg>
<arg name="source"><[![CDATA[<html>EMAIL</html>]]></arg>
</args>
</command>
Run Code Online (Sandbox Code Playgroud)
我怎样才能在下面的代码中实现这一点?
@XmlRootElement(name="command")
public class Command {
@XmlElementWrapper(name="args")
protected List<Arg> arg;
}
@XmlRootElement(name="arg")
public class Arg {
@XmlAttribute
public String name;
@XmlValue
public String value;
public Arg() {};
static Arg make(final String name, final String value) {
Arg a = new Arg();
a.name=name; a.value=value;
return a; }
}
Run Code Online (Sandbox Code Playgroud) 我正在使用XML来共享HTML内容.AFAIK,我可以通过以下方式嵌入HTML:
编码:我不知道它是否完全安全使用.我将不得不再次解码它.
使用CDATA部分:如果内容包含结束标记"]]>"和某些十六进制字符,我仍然会遇到问题,我相信.另一方面,XML解析器将为我透明地提取信息.
我应该选择哪个选项?
更新:xml将在java中创建,并作为字符串传递给.net Web服务,它将被解析回来.因此,我需要能够将xml导出为字符串并使用"doc.LoadXml(xmlString);"加载它.