XSL:复制XML然后替换一些标签
发布时间:2020-12-16 23:13:12 所属栏目:百科 来源:网络整理
导读:我是XSL / XSLT的新手.我想将一个xml文档复制到另一个文件中,但是要替换一些命名空间标记和一些具有某些特殊属性的标记.例如: root ext:fooTest/ext:foo barBar/bar baz id="baz" x="test" something/ /baz/root 应该改写成: root --Test-- barBar/bar xxx
我是XSL / XSLT的新手.我想将一个xml文档复制到另一个文件中,但是要替换一些命名空间标记和一些具有某些特殊属性的标记.例如:
<root> <ext:foo>Test</ext:foo> <bar>Bar</bar> <baz id="baz" x="test"> <something/> </baz> </root> 应该改写成: <root> --Test-- <bar>Bar</bar> xxx<baz id="baz"> <something/> </baz>xxx </root> 是否可以复制整个XML,然后应用一些规则来替换我想要替换的标签? 解决方法
您可以复制某些节点并使用不同的规则重新编写其他节点.保持< root>和< bar>相同,并重写< baz>,尝试这个(未经测试)作为起点:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml"/> <!-- Match <baz> and re-write a little --> <xsl:template match="baz"> xxx<baz id="{@id}"> <xsl:apply-templates /> </baz>xxx </xsl:template> <!-- By default,copy all elements,attributes,and text --> <xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </xsl:template> </xsl:stylesheet> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |