微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在XSLT中解析CDATA元素中的XML DOM?

我有一个 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元素’name’,并将其值放在标签的vaue中.我该怎么做呢? AFAIK,我们不能在CDATA的内容上使用xpath.这有什么黑客/解决方法吗?我想在XSLT中严格执行此操作.

由于CDATA块是(部分)文本节点,因此您可以在两个“标签”之间提取文本,例如像这样:
<xsl:template match="text()">
  <xsl:value-of select="substring-before(substring-after(.,'&lt;name>'),'&lt;/name>')"/>
</xsl:template>

这只是一个快速的想法.如果CDATA中有多个名称“element”,则只需递归地多次应用上面的表达式.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。