我正在使用这个输入 xml 文件。
<Content>
<body><text>xxx</text></body>
<body><text>yy</text></body>
<body><text>zz</text></body>
<body><text>kk</text></body>
<body><text>mmm</text></body>
</Content>
Xslt 转换后的输出应该是
<Content>
<body><text>xxx</text>
<text>yy</text>
<text>zz</text>
<text>kk</text>
<text>mmm</text></body>
</Content>
谁能提供其相关的 Xsl 文件。
这彻底的转变:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="body"/>
<xsl:template match="body[1]">
<body>
<xsl:apply-templates select="../body/node()"/>
</body>
</xsl:template>
</xsl:stylesheet>
当应用于提供的 XML 文档时:
<Content>
<body>
<text>xxx</text>
</body>
<body>
<text>yy</text>
</body>
<body>
<text>zz</text>
</body>
<body>
<text>kk</text>
</body>
<body>
<text>mmm</text>
</body>
</Content>
产生想要的正确结果:
<Content>
<body>
<text>xxx</text>
<text>yy</text>
<text>zz</text>
<text>kk</text>
<text>mmm</text>
</body>
</Content>
解释:
The 身份规则 http://www.dpawson.co.uk/xsl/sect2/identity.html“按原样”复制每个节点。
它被两个模板覆盖。第一个忽略/删除每个body
元素`。
覆盖身份模板的第二个模板也会覆盖第一个此类模板(删除每个body
元素)对于任何body
第一个元素body
其父母的孩子。为此首先body
只有孩子,一个body
生成元素,并且在其主体中作为任何元素的子节点的所有节点body
其父级的子级(当前body
元素及其所有body
兄弟姐妹)已处理。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)