2013-11-26 38 views
0

以下是輸入。我需要提取b2,b3,b4值,其中b1 = 555。也可以有3個以上的區塊。目前試圖通過每個塊迭代,任何其他可靠的方法來做到這一點需要根據條件提取子標籤值

<a> 
    <b1>111</b> 
    <b2>222</b> 
    <b3>333</b> 
    <b4>444</b> 
    </a> 
    <a> 
    <b1>555</b> 
    <b2>666</b> 
    <b3>777</b> 
    <b4>888</b> 
    </a> 
    <a> 
    <b1>999</b> 
    <b2>000</b> 
    <b3>122</b> 
    <b4>167</b> 
    </a> 

回答

0

你只需要進行選擇的標準挑選所有< B1>其中值是555

事情是這樣的:

<xsl:template match="/"> 
     <!-- Select all a element that have a b1 element who's value is 555 --> 
     <xsl:apply-templates select="//a[./b1=555]" /> 
    </xsl:template> 
    <xsl:template match="a"> 
     b1=<xsl:value-of select="b1"/> 
     b2=<xsl:value-of select="b2"/> 
     b3=<xsl:value-of select="b3"/> 
     b4=<xsl:value-of select="b4"/>  
    </xsl:template> 
</xsl:stylesheet> 

注:我打印了b1值,以顯示它是用於說明的正確值集。此外,您應該再次使用應用模板併爲每個類型b2 b3 b4設置一個不同的模板,這樣如果轉換彼此非常不同,您可以爲每個模板分別進行轉換。

這個樣式表對您的樣品運行產生:

b1=555 
b2=666 
b3=777 
b4=888