我無法顯示第一個匹配值,如找到第一個匹配時,打破每個循環的XSLT
<test>
<p>30</p>
<p>30{1{{23{45<p>
<p>23{34</p>
<p>30{1{98</p>
</test>
<test2>
<p1>text</p1>
</test2>
所以我想循環遍歷<test></test>
並找到字符串長度大於2且包含30的<p>
節點的值。我只想要第一個值。 所以我累了下面的代碼
<xsl:variable name="var_test">
<xsl:for-each select="*/*/test()>
<xsl:if string-length(p/text())>2 and contains(p/text(),'30'))
<xsl:value-of select="xpath">
</xsl:variable>
問題是var_test始終爲null。
如果我直接嘗試任何變量
<xsl:for-each select="*/*/test()>
<xsl:if string-length(p/text())>2 and contains(p/text(),'30'))
<xsl:value-of select="xpath">
我得到以下輸出
<p>30{1{23{4530{1{98</p>
但是所需的輸出是
<p>0{1{23{45</p>
所以我怎麼能實現這個?
您的問題中仍然存在相當多的拼寫錯誤,您可能需要解決此問題。 – LarsH 2011-06-07 21:25:40
'xpath'有一些我沒有聽說過的特殊價值嗎?似乎有很多「壞xslt mojo」在這裏進行。謹慎處理.... – 2011-06-07 21:28:47
@Abe:很好的問題。不,它不是一個特殊的關鍵字或任何東西。在這裏它將被解釋爲一個子元素的名稱 - 其中沒有。我想知道OP的含義。 – LarsH 2011-06-07 21:32:28