加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何使用xsl从xml节点获取CDATA?

发布时间:2020-12-16 23:49:14 所属栏目:百科 来源:网络整理
导读:我试图使用XSL获取 XML节点的CDATA内容.该 节点目前看起来像这样: node id="1" text="Book Information" ![CDATA[This is sample text]]/node 我需要这是示例文本片段.有没有人对此有任何想法? 提前致谢. 好吧,如果我使用这个样式表: ?xml version="1.0"
我试图使用XSL获取 XML节点的CDATA内容.该
节点目前看起来像这样:
<node id="1" text="Book Information" ><![CDATA[This is sample text]]></node>

我需要这是示例文本片段.有没有人对此有任何想法?

提前致谢.

好吧,如果我使用这个样式表:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="text"/>
  <xsl:template match="node/text()">
    <xsl:copy/>
  </xsl:template>
</xsl:stylesheet>

在这个XML文件上:

<?xml version="1.0" encoding="utf-8"?>
<node id=1 text="Book Information" ><![CDATA[This is sample text]]></node>

我得到一个解析错误,因为id = 1是无效的XML.

在属性值(id =“1”)周围加上引号并重新运行样式表,我得到输出:

This is sample text

所以有一个开始.基本上,只需将CDATA视为文本节点,即可开始使用.

你说:

I found something like:
<xsl:output cdata-section-elements="text"/>
and then to fetch CDATA:
<xsl:value-of select="node" />

如果您正在使用value-of,这种方法也可以正常工作.这里将是您的评论中的一个示例,使用value-of.但请注意,cdata-section-elements仅适用于输出端,指示要将哪些输出XML元素打印为CDATA节而不是普通的旧字符数据.它与获取数据无关.

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output cdata-section-elements="foo"/>
  <xsl:template match="/">
    <foo>
      <xsl:value-of select="node"/>
    </foo>
  </xsl:template>
</xsl:stylesheet>

打印出来

<?xml version="1.0"?>
<foo><![CDATA[This is sample text]]></foo>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读