我正在尝试为输入xml中的每个键/值对创建节点:
<Rowsets>
<Rowset>
<Row>
<value>0</value>
<id>SOME_KEY</id>
</Row>
<Row>
<value>Hello world</value>
<id>ANOTHER_KEY</id>
</Row>
</Rowset>
</Rowsets>
所以输出应该如下所示:
<PARAMETERS>
<SOME_KEY>0</SOME_KEY>
<ANOTHER_KEY>Hello world</ANOTHER_KEY>
</PARAMETERS>
我使用xsl-template在XSL转换下使用,但它没有提供任何输出
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">
<PARAMETERS>
<xsl:template match="/Rowsets/Rowset/Row">
<xsl:element name="{id}" value="{value}">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
</PARAMETERS>
</xsl:stylesheet>
答案 0 :(得分:1)
请修改XSLT,如下所示
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs"
version="2.0">
<xsl:output method="xml" indent="yes" />
<xsl:strip-space elements="*"/>
<xsl:template match="Rowsets/Rowset">
<PARAMETERS>
<xsl:for-each select="Row">
<xsl:element name="{id}">
<xsl:value-of select="value" />
</xsl:element>
</xsl:for-each>
</PARAMETERS>
</xsl:template>
</xsl:stylesheet>