【发布时间】:2026-01-26 18:10:01
【问题描述】:
我有一堆 xml 文件,其中包含不同数量的数据节点,我想使用 XSLT 更改文件以仅包含特定节点。 示例:
<?xml version="1.0" encoding="UTF-8"?>
<SomeName>
<identifier>
<UID> 1234 </UID>
</identifier>
<MainNode1>
<SubNode1>
<Subnode1a>DATA1a0</Subnode1a>
</SubNode1>
<SubNode1>
<Subnode1a>DATA1a1</Subnode1a>
</SubNode1>
<SubNode1>
<Subnode1a>DATA1a2</Subnode1a>
</SubNode1>
</MainNode1>
<MainNode2>
<SubNode2>
<Subnode2a>DATA2a0</Subnode2a>
</SubNode2>
</MainNode2>
<MainNodeIDONTCARE>
<SubnodeWhatever>
</SubnodeWhatever>
</MainNodeIDONTCARE>
<MainNodeuseless>
<SubnodeWhatever>
</SubnodeWhatever>
</MainNodeuseless>
<MainNodewhatever>
<SubnodeWhatever>
</SubnodeWhatever>
</MainNodewhatever>
</SomeName>
现在我的最终 XML 文件应该如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<SomeName>
<identifier>
<UID> 1234 </UID>
</identifier>
<MainNode1>
<SubNode1>
<Subnode1a>DATA1a0</Subnode1a>
</SubNode1>
<SubNode1>
<Subnode1a>DATA1a1</Subnode1a>
</SubNode1>
<SubNode1>
<Subnode1a>DATA1a2</Subnode1a>
</SubNode1>
</MainNode1>
<MainNode2>
<SubNode2>
<Subnode2a>DATA2a0</Subnode2a>
</SubNode2>
</MainNode2>
</SomeName>
我一直在尝试使用 XSLT 完成它,但我似乎无法完成它。
感谢您的帮助。
【问题讨论】:
-
好问题 (+1)。请参阅我的答案,以获得同样符合 XSLT 精神且不使用任何
<xsl:for-each>指令的最短解决方案。 :)