2012-07-07 174 views
0

我已經在XML文件的一部分中存儲了一個變量($ ResId)中的特定數字,並且我在不同部分中具有以下內容。如何選擇一個沒有屬性但具有特定值的XML節點

<CalculatedWho> 
    <ResourceId>85</ResourceId> 
    <ResourceId>49</ResourceId> 
    <ResourceId>43</ResourceId> 
    <ResourceId>41</ResourceId> 
</CalculatedWho> 

如果這些匹配存儲在變量中的數字,我會執行一個特定的任務。我已經嘗試了以下和其他一些事情,但還沒有弄清楚。

<xsl:for-each select="//StrategyPool/Strategy"> 
    <xsl:if test="//StrategyPool/Strategy/CalculatedWho/ResourceId[text()=$ResId]" > 
    <xsl:value-of select="StrategyName"/> 
    </xsl:if> 
</xsl:for-each> 

問題是,IF測試永遠不會返回一個值,但我知道有匹配。我也試過以下爲if測試:

<xsl:if test="/CalculatedWho/ResourceId[text()=$ResId]" > 

+0

似乎沒問題,您面臨的問題是什麼? – 2012-07-07 07:58:36

回答

1

缺乏一個具體的問題,這是我立刻看到爲錯誤的是,你不需要「// StrategyPool /策略/「在xsl中的測試部分:if。此時的上下文節點已經是策略元素。另外,如果您打算選擇StrategyName的值,請確保它是Strategy節點的CalculatedWho節點/直接子節點的兄弟節點。除此之外,取決於$ ResId的價值/類型,您可能會遇到一些奇怪的強制行爲。

相關問題