【发布时间】:2017-07-05 03:50:34
【问题描述】:
我需要创建一些 xml 文件的子 xml。 我有一个所需节点的列表。 xslt 转换应该是什么样子? 例如输入文件:
<?xml version="1.0"?>
<root>
<a id="A">
<aa>text</aa>
<bb>text</bb>
<cc id="1">
<aaa>text</aaa>
<bbb>text</bbb>
</cc>
</a>
<a id="B">
<aa>text2</aa>
<bb>text2</bb>
<cc id="2">
<aaa>text2</aaa>
<bbb>text2</bbb>
</cc>
</a>
</root>
想要的输出:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<a id="A">
<bb>text</bb>
<cc>
<bbb>text</bbb>
</cc>
</a>
<a id="B">
<bb>text2</bb>
<cc>
<bbb>text2</bbb>
</cc>
</a>
</root>
目前我使用 follwonf xslt:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output indent="yes"/>
<xsl:template match="node()|@*"/>
<xsl:template match="
root
|root/a
|root/a/@id
|root/a/bb
|root/a/bb/node()
|root/a/cc
|root/a/cc/bbb
|root/a/cc/bbb/node()
">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
但我想要一个更短的列表:
root/a/@id
|root/a/bb/node()
|root/a/cc/bbb/node()
那么如何为该短名单创建 xslt 转换?
【问题讨论】: