我是初学者是xslt,并且已经有一段时间与一个问题作斗争了:
原始XML:
59
这是从一个更复杂的一个被剥夺,但它应该仍然有意义。 我需要使用xslt使它看起来像这样:
<?xml version="1.0" encoding="UTF-8" ?>
<root>
<record>
<column name="LVL1">16080503</column>
<column name="LVL2">123</column>
<column name="LVL3">R08050003</column>
<column name="TOP">ABC</column>
</record>
<record>
<column name="LVL1">16080504</column>
<column name="LVL2">123</column>
<column name="LVL3">R08050004</column>
<column name="TOP">DEF</column>
</record>
<record>
<column name="LVL1">16080523</column>
<column name="LVL2">123</column>
<column name="LVL3">R08050023</column>
<column name="TOP">ABC</column>
</record>
<record>
<column name="LVL1">16080909</column>
<column name="LVL2">456</column>
<column name="LVL3">A08090340</column>
<column name="TOP">ABC</column>
</record>
<record>
<column name="LVL1">16080503</column>
<column name="LVL2">123</column>
<column name="LVL3">R08050006</column>
<column name="TOP">ABC</column>
</record>
<record>
<column name="LVL1">00732544</column>
<column name="LVL2">123</column>
<column name="LVL3">R02713691</column>
<column name="TOP">ABC</column>
</record>
<record>
<column name="LVL1">00732544</column>
<column name="LVL2">123</column>
<column name="LVL3">RC02713691</column>
<column name="TOP">DEF</column>
</record>
</root>
我一直在研究多种方法来做到这一点,而且我不确定哪种方法最好;使用<?xml version="1.0" encoding="UTF-8"?>
<File>
<LVL0>ABC</LVL0>
<Group>
<LVL1>16080503</LVL1>
<SubGroups>
<SubGroup>
<LVL2>123</LVL2>
<XXXs>
<XXX>
<LVL3>R08050003</LVL3>
</XXX>
<XXX>
<LVL3>R08050006</LVL3>
</XXX>
</XXXs>
</SubGroup>
</SubGroups>
</Group>
<Group>
<LVL1>16080523</LVL1>
<SubGroups>
<SubGroup>
<LVL2>123</LVL2>
<XXXs>
<XXX>
<LVL3>R08050023</LVL3>
</XXX>
</XXXs>
</SubGroup>
</SubGroups>
</Group>
<Group>
<LVL1>16080909</LVL1>
<SubGroups>
<SubGroup>
<LVL2>451</LVL2>
<XXXs>
<XXX>
<LVL3>A08090340</LVL3>
</XXX>
</XXXs>
</SubGroup>
</SubGroups>
</Group>
<Group>
<LVL1>00732544</LVL1>
<SubGroups>
<SubGroup>
<LVL2>123</LVL2>
<XXXs>
<XXX>
<LVL3>R02713691</LVL3>
</XXX>
</XXXs>
</SubGroup>
</SubGroups>
</Group>
</File>
<File>
<LVL0>DEF</LVL0>
<Group>
<LVL1>16080504</LVL1>
<SubGroups>
<SubGroup>
<LVL2>123</LVL2>
<XXXs>
<XXX>
<LVL3>R08050004</LVL3>
</XXX>
</XXXs>
</SubGroup>
</SubGroups>
</Group>
<Group>
<LVL1>00732544</LVL1>
<SubGroups>
<SubGroup>
<LVL2>123</LVL2>
<XXXs>
<XXX>
<LVL3>RC02713691</LVL3>
</XXX>
</XXXs>
</SubGroup>
</SubGroups>
</Group>
</File>
或<xsl:for-each>
。
我宁愿使用模板,因为我对它们比较熟悉,但我有点卡住了。
我认为我应该使用此密钥进行顶级分组,但我再次没有得到理想的结果;
<xsl:apply-templates>
非常感谢任何帮助解释在此类问题中使用的逻辑。