0

我有一个看起来像这样的 xml 文件:

 <bookstore>  

 <book category="COOKING">  
   <title lang="en">Everyday Italian</title>  
   <author>Giada De Laurentiis</author>  
   <year>2005</year>  
   <price>30.00</price>  
   <![CDATA[<<port>url=  https://localhost:8080<port>]]>
 </book>

我看到在处理它时,整个标签都被视为 CDATA。您可以在具有 CDATA 的标签内使用其他标签吗?我没有找到任何这样做的在线示例。

4

3 回答 3

2

首先,您似乎不清楚“标签”是什么。鉴于这种:

<a><![CDATA[xyz]]></a>

有两个标签:一个开始标签<a>和一个结束标签</a>。CDATA 部分不是“在”标签中,而是在两个标签之间。

因此,当您说“整个标签被视为 CDATA”时,我认为您的意思是“标签之间的整个内容都被视为 CDATA”;是的,这是正确的。当您说“您可以在具有 CDATA 的标签中使用其他标签吗?” 我认为你的意思是“你可以在 CDATA 部分内有标签吗?”答案是否定的:使用 CDATA 部分的唯一目的是防止该部分内的任何尖括号被识别为标记。

于 2012-05-04T08:58:47.780 回答
1

解析器会忽略 CDATA 部分中的所有内容。

在您的情况下<<port>url= https://localhost:8080<port>,不会被视为包含标签的 XML,而是纯文本。

如果您想要一个包含 CDATA 部分的端口元素,您应该将您的行修改为

<port><![CDATA[url= https://localhost:8080]]></port>

于 2012-05-03T22:06:06.330 回答
0

如果您查看CDATA 部分的定义,<![CDATA[则开始和结束标记之间的所有内容]]>都被视为文本输入,根本不会对信息进行任何处理。

现在,如果您在 CDATA 部分中形成有效的 XML,一旦您提取它,您就可以单独处理该文档。

于 2012-05-04T15:28:11.570 回答