输入xml:
必需的输出格式:
使用for-each,我们可以遍历"标题下的所有子标签"或"对象&#34 ;;但是如何遍历两个标签并选择值并将它们组合起来如上所示(只是一个奇怪的例子:))。通过使用xsl转换。任何形式的帮助将不胜感激......
答案 0 :(得分:1)
输入(请仅发布文字。更容易复制)
<payload>
<headers>
<header>
<name>entry1</name>
</header>
<header>
<name>entry2</name>
</header>
<header>
<name>entry3</name>
</header>
<header>
<name>entry4</name>
</header>
</headers>
<objects>
<row>
<value>1231</value>
</row>
<row>
<value>342</value>
</row>
<row>
<value>98789</value>
</row>
<row>
<value>6576</value>
</row>
</objects>
</payload>
XSLT:(有很多解决方案)
<?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="/">
<xsl:element name="objects">
<xsl:for-each select="payload/objects/row">
<xsl:variable name="i" select="position()"/>
<entry name="{/payload/headers/header[$i]/name}" value="{value}"></entry>
</xsl:for-each>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
<强>结果强>
<objects>
<entry name="entry1" value="1231"></entry>
<entry name="entry2" value="342"></entry>
<entry name="entry3" value="98789"></entry>
<entry name="entry4" value="6576"></entry>
</objects>