【发布时间】:2012-05-06 14:10:01
【问题描述】:
假设我有一个 XML 文件,例如:
<library>
<books>
<![CDATA[<genre><name>Sci-fi</name><count>2</count></genre>]]>
<book>
<name>
Some Book
</name>
<author>
Some author
</author>
<book>
<book>
<name>
Another Book
</name>
<author>
Another author
</author>
<book>
<books>
</library>
我想在 xslt 转换器中读取 CDATA 元素“名称”并将其值放在标记值中的某处。我该怎么做呢? AFAIK,我们不能对 CDATA 的内容使用 xpath。是否有一些破解/解决方法?我想在 XSLT 中严格执行此操作。
【问题讨论】:
-
CDATA 告诉 XML 解析器它不是 XML,因此它不会被解析。
它经常被滥用,因此(懒惰/不知情的)通过字符串连接创建“XML”的人不必处理正确编码的字符。如果你可以控制 XML 文件的创建,或者可以影响生成它的人,让他们停止滥用 CDATA 并将他们的 XML 内容作为 XML。