我有一个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的标签内使用其他标签吗?我没有找到任何在线样本。
答案 0 :(得分:2)
首先,您似乎不清楚“标签”是什么。鉴于此:
<a><![CDATA[xyz]]></a>
有两个标记:开始标记<a>
和结束标记</a>
。 CDATA部分不在“标签内”,它位于两个标签之间。
所以,当你说“整个标签被视为CDATA”时,我认为你的意思是“标签之间的整个内容被视为CDATA”;是的,这是正确的。当你说'你可以在有CDATA的标签内使用其他标签吗?'我认为你的意思是'你可以在CDATA部分内有标签吗?',答案是否定的:使用CDATA部分的唯一要点是防止部分内的任何尖括号被识别为标记。
答案 1 :(得分:1)
解析器会忽略CDATA部分内的所有内容。
在您的情况下,<<port>url= https://localhost:8080<port>
不会被视为包含XML的标记,而是纯文本。
如果您想要一个包含CDATA部分的端口元素,您应该将您的行修改为
<port><![CDATA[url= https://localhost:8080]]></port>
答案 2 :(得分:0)
如果您查看definition of a CDATA section开头<![CDATA[
和结束]]>
标记之间的所有内容都被视为文字输入,则根本不对信息进行处理。
现在,如果您在CDATA部分中形成有效的XML,一旦提取它,您就可以单独处理该文档。