1
輸入XML:無法遍歷兩個子節點同時
需要的輸出格式:
使用的for-each我們所有的子標籤遍歷在「標題」或「對象」下;但如何遍歷這兩個標籤和選擇值並將它們組合如上所示(只是一個奇怪的例子:))。通過使用xsl轉換。任何形式的幫助將不勝感激......
輸入XML:無法遍歷兩個子節點同時
需要的輸出格式:
使用的for-each我們所有的子標籤遍歷在「標題」或「對象」下;但如何遍歷這兩個標籤和選擇值並將它們組合如上所示(只是一個奇怪的例子:))。通過使用xsl轉換。任何形式的幫助將不勝感激......
輸入(請郵寄僅文本更易於複製)
<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>
你的意思是在全部4行重複'entry1',還是應該是'entry1,... 2,... 3,... 4'?另外,非常重要的是,不要發佈文字圖像。發佈文本本身,以便可以輕鬆複製。張貼文字圖像會讓別人幫你更難。 –