以下是inpt。我需要提取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 :(得分:0)
你只需要让你的选择标准选择全部&lt; b1&gt;其中值为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