我正在努力使用XSLT1.0来实现非常简单的功能,所以请耐心等待。
这是我原来的XML:
<适配器响应>
<状态>&成功LT; /状态>
<数据>
<库存>
<服务器>
....
....
< /服务器和GT;
<路由器>
....
....
< /路由器>
...
...
< /库存>
< /适配器响应>
它是一个包含大量数据的庞大XML。我只想删除与适配器相关的标签,并将库存数据与原始标签保持一致。所以最终的XML将是:
<库存>
<服务器>
....
....
< /服务器和GT;
<路由器>
....
....
< /路由器>
...
...
< /库存>
请帮忙!
此致 拉胡
答案 0 :(得分:1)
提供的"草图" XML文档的格式不正确,因此我对文档的重建可能不是问题中的意图:
<adapter-response>
<status>success</status>
<data>
<inventory>
<servers>
....
....
</servers>
<routers>
....
....
</routers>
...
...
</inventory>
</data>
</adapter-response>
此转化:
<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="*[contains(name(), 'adapter')]">
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
仅复制到输出元素,其名称不包含字符串"adapter"
。上述文件的结果是:
<status>success</status>
<data>
<inventory>
<servers>
....
....
</servers>
<routers>
....
....
</routers>
...
...
</inventory>
</data>