2015-10-02 83 views
0

美好的一天。我目前正在學習XSLT 2.0。我想提取來自多個相似標籤的數據。像下面XSLT多XML標籤

在這裏,一個是我的XSLT:

<xsl:for-each select="/root1/root2"> 
    <xsl:for-each select="a1 | b1"> 
      <xsl:value-of select="c1"> 
      <xsl:value-of select="a1"> 
      <xsl:value-of select="b1"> 
    </xsl:for-each> 
</xsl:for-each> 

輸入XML:

<root1> 
    <root2> 
     <a1>Car1</a1> 
     <a1>Car2</a1> 
     <a1>Car3</a1> 
     <b1>Red</b1> 
     <b1>Blue</b1> 
     <b1>Black</b1> 
     <c1>Name</c1> 
    </root2> 
</root> 

所需的輸出:

名稱分享幫助紅

名稱CAR2藍

名稱的Car3黑色

我甚至不能拉起名稱與我的XSLT

如何配對A1與B1正確?

什麼建議嗎?

+0

問題是混亂。 「XML」是否向我們顯示輸入?如果是的話,你將無法做任何事情:元素名稱不能以數字開頭。 –

+0

@ michael.hor257k啊。對於那個很抱歉。是的,它是輸入,我將它轉換爲文本。我錯過了其他什麼嗎? –

+0

所需轉換的邏輯尚不清楚。元素是否真的像這樣編號,還是僅僅是一個例子? –

回答

0

試試這個方法嗎?

XSLT 2.0

<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="text" encoding="UTF-8"/> 

<xsl:template match="/root1"> 
    <xsl:for-each select="root2"> 
     <xsl:for-each select="a1"> 
      <xsl:variable name="i" select="position()" /> 
      <xsl:value-of select="string-join((../c1, ., ../b1[$i], '&#10;'), ' ')"/> 
      </xsl:for-each> 
    </xsl:for-each> 
</xsl:template> 

</xsl:stylesheet>