我想转换具有多个头部、细节和更多细节节点的xml。每个节点都包含键“ID”以将它们连接在一起。
这看起来很简单,但对我不起作用。
<?xml version="1.0" encoding="UTF-8"?>
<File>
<Header>
<Id>1</Id>
<Other>How</Other>
</Header>
<Detail>
<Id>1</Id>
<Other>to</Other>
</Detail>
<MoreDetails>
<Id>1</Id>
<Other>group</Other>
</MoreDetails>
<Header>
<Id>2</Id>
<Other>How</Other>
</Header>
<Detail>
<Id>2</Id>
<Other>to</Other>
</Detail>
<MoreDetails>
<Id>2</Id>
<Other>group</Other>
</MoreDetails>
<MoreDetails>
<Id>2</Id>
<Other>may have multiples</Other>
</MoreDetails>
</File>
<?xml version="1.0" encoding="UTF-8"?>
<File>
<Group value="1">
<Header>
<Id>1</Id>
<Other>How</Other>
</Header>
<Detail>
<Id>1</Id>
<Other>to</Other>
</Detail>
<MoreDetails>
<Id>1</Id>
<Other>group</Other>
</MoreDetails>
</Group>
<Group value="2">
<Header>
<Id>2</Id>
<Other>How</Other>
</Header>
<Detail>
<Id>2</Id>
<Other>to</Other>
</Detail>
<MoreDetails>
<Id>2</Id>
<Other>group</Other>
</MoreDetails>
<MoreDetails>
<Id>2</Id>
<Other>with multiple child</Other>
</MoreDetails>
</Group>
</File>
我是这样开始的,
<xsl:template match="/File">
<xsl:for-each-group select="./child::*" group-by="Id">
<xsl:variable name="ID" select="Id"/>
<xsl:value-of select="current-grouping-key()"/>
以及使用变量和键名的变体,但我无法按指定输出。
任何想法都非常受欢迎。
提前感谢
-空调