我不确定它是否可能,但现在就可以了。
从这个XML:
<?xml version="1.0" encoding="UTF-8"?>
<AttributesCollection>
<Attributes>
<AttributeName>AAA</AttributeName>
<AttributeValue>Value1</AttributeValue>
</Attributes>
<Attributes>
<AttributeName>BBB</AttributeName>
<AttributeValue>Value2</AttributeValue>
</Attributes>
</AttributesCollection>
我希望使用XSL转换将其转换为以下内容:
<Attributes>
<AAA>Value1</AAA>
<BBB>Value2</BBB>
</Attributes>
我可以获取属性名称,但不知道如何形成XML。这是我试过的。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="./AttributesCollection/Attributes/AttributeName">
Name:<xsl:value-of select="."/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
哪位给我:
<?xml version="1.0" encoding="UTF-8"?>
Name:AAA
Name:BBB
那么,有可能做我想要的吗?有帮助吗?感谢
答案 0 :(得分:1)
这应该这样做:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/*">
<Attributes>
<xsl:apply-templates select="Attributes" />
</Attributes>
</xsl:template>
<xsl:template match="Attributes">
<xsl:element name="{AttributeName}">
<xsl:value-of select="AttributeValue" />
</xsl:element>
</xsl:template>
</xsl:stylesheet>
对样本数据运行时,结果为:
<Attributes>
<AAA>Value1</AAA>
<BBB>Value2</BBB>
</Attributes>