我需要将下面的“ input.xml”转换为“ output.xml”
input.xml
<tags><tag1>1 2 3</tag1><tag2>A B C</tag2></tags>
output.xml
<tags>
<tag1>1</tag1>
<tag2>A</tag2>
</tags>
<tags>
<tag1>2</tag1>
<tag2>B</tag2>
</tags>
<tags>
<tag1>3</tag1>
<tag2>c</tag2>
</tags>
假设<tag1>
,<tag2>
的值数相同。
答案 0 :(得分:1)
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs">
<xsl:output omit-xml-declaration="yes" indent="yes" />
<xsl:template match="/">
<xsl:variable name="tokenizedTag1" select="tokenize(/tags/tag1,' ')" />
<xsl:variable name="tokenizedTag2" select="tokenize(/tags/tag2,' ')" />
<xsl:for-each select="$tokenizedTag1">
<xsl:variable name="positionTag1" select="position()"></xsl:variable>
<tags>
<tag1><xsl:value-of select="." /></tag1>
<xsl:for-each select="$tokenizedTag2">
<xsl:if test="$positionTag1 = position()">
<tag2><xsl:value-of select="." /></tag2>
</xsl:if>
</xsl:for-each>
</tags>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>