我希望通过xslt这个xml自动处理示例,字段和值必须动态解析,而不是硬编码:
<root>
<field1>value1</field1>
<field2>value2</field2>
</root>
到此:
<items>
<field>field1</field>
<value>value1</value>
<field>field2</field>
<value>value2</value>
</items>
请帮忙。
答案 0 :(得分:0)
您可以使用name()
函数获取当前元素的名称
例如,如果'field1'
为.
,则会返回<field1>
。
因此模板的相应部分将是
<field><xsl:value-of select="name()" /></field>
<value><xsl:value-of select="." /></value>
答案 1 :(得分:0)
您需要以下内容:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
<xsl:strip-space elements="*"/>
<xsl:template match="root">
<items>
<xsl:apply-templates/>
</items>
</xsl:template>
<xsl:template match="*">
<xsl:param name="firstElement" select="replace(name(),'([0-9])','')"/>
<xsl:param name="SecondElement" select="replace(text(),'([0-9])','')"/>
<xsl:element name="{$firstElement}">
<xsl:value-of select="name()"/>
</xsl:element>
<xsl:element name="{$SecondElement}">
<xsl:value-of select="."/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>