我无法使用简单的 (?) XSLT 转换进行管理。
有一个输入扁平结构的 XML:
<root>
<attribute_a>abc</attribute_a>
<attribute_b>def</attribute_b>
<attribute_c>ghi</attribute_c>
<attribute_a>123</attribute_a>
<attribute_b>456</attribute_b>
<attribute_c>789</attribute_c>
<attribute_a>xxx</attribute_a>
<attribute_b>xxx</attribute_b>
<attribute_c>xxx</attribute_c>
</root>
我应该将它转换为这样的 XML:
<root>
<attribute>
<attribute_a>abc</attribute_a>
<attribute_b>def</attribute_b>
<attribute_c>ghi</attribute_c>
</attribute>
<attribute>
<attribute_a>123</attribute_a>
<attribute_b>456</attribute_b>
<attribute_c>789</attribute_c>
</attribute>
<attribute>
<attribute_a>xxx</attribute_a>
<attribute_b>xxx</attribute_b>
<attribute_c>xxx</attribute_c>
</attribute>
</root>
但问题是在这样的转换之后:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" />
<xsl:template match="/">
<root>
<xsl:for-each select="root/attribute_a">
<attribute>
<attribute_a>
<xsl:value-of select="../attribute_a" />
</attribute_a>
<attribute_b>
<xsl:value-of select="../attribute_b" />
</attribute_b>
<attribute_c>
<xsl:value-of select="../attribute_c" />
</attribute_c>
</attribute>
</xsl:for-each>
</root>
<xsl:apply-templates />
</xsl:template>
</xsl:stylesheet>
我得到了这样的东西:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<attribute>
<attribute_a>abc</attribute_a>
<attribute_b>def</attribute_b>
<attribute_c>ghi</attribute_c>
</attribute>
<attribute>
<attribute_a>abc</attribute_a>
<attribute_b>def</attribute_b>
<attribute_c>ghi</attribute_c>
</attribute>
<attribute>
<attribute_a>abc</attribute_a>
<attribute_b>def</attribute_b>
<attribute_c>ghi</attribute_c>
</attribute>
</root>
我在 XSLT 方面不是很有经验 - 你有什么想法吗?:(
问候,上午