我正在阅读一本教科书来学习 XPath 。我从那本书中找到了下面这一行:
但是这本书没有给出任何解释上述句子的例子。任何人都可以帮助我理解作者试图在下面说的内容:XPath如何处理XML CDATA部分中的文本? CDATA部分中的每个字符都被视为字符数据。换句话说,CDATA部分被视为已移除
<![CDATA[
和]]>
,并且每次出现的标记(如<
和&
)都被相应的字符实体替换为<
和&
。
CDATA部分被视为已移除
<![CDATA[
和]]>
,并且每次出现的标记(如<
和&
)都被相应的字符替换<
和&
等实体。
答案 0 :(得分:3)
我反过来想到了这一点 - <![CDATA[
和下一个]]>
之间的所有内容都被视为文本,并且不受实体引用的常规解码限制,<
标志不会引入元素名称。所以
<something><![CDATA[<foo>text&more</foo>]]></something>
与
相同<something><foo>text&more</foo></something>
,而
<something><foo>text&more</foo></something>
不是格式良好的XML(因为&
被视为实体引用的开头,但是没有相应的;
来结束它。)