[英]Querying results of msxsl:node-set is not working
我正在使用node-set
內置函數將xsl變量轉換為節點集,如以下代碼所示
<xsl:variable name="allotmentValuesNodeSet" select="msxsl:node-set($allotmentValues)"/>
命令<xsl:copy-of select="$allotmentValuesNodeSet"/>
產生以下輸出:
<values>
<month>Mar</month>
<incomeQTD>1499.63109246680</incomeQTD>
<realizedQTD />
<incomeYTD>1519.35773710483</incomeYTD>
<realizedYTD />
<incomePrevYTD>1519.35773710483</incomePrevYTD>
<realizedPrevYTD />
<month />
<incomeQTD />
<realizedQTD />
<incomeYTD />
<realizedYTD />
<incomePrevYTD />
<realizedPrevYTD />
</values>
當我嘗試使用此xsl命令<xsl:value-of select="count($allotmentValuesNodeSet/values/month)"/>
查詢節點集變量時,盡管結果應為2
,但我總是得到0
。
allotmentValues
變量包含在其他外部xml節點之間。 如果我沒有在任何xml節點之間包括它,那么代碼將按預期工作。
是否存在任何明顯的理由(例如,可能與名稱空間相關?),為什么查詢xsl節點集可能會中斷?
如果需要,我將嘗試提出一個簡單的示例來說明我的問題(由於該問題是專有代碼,因此我無法准確發布該問題的代碼段)。
使用例如<xsl:variable name="allotmentValues" xmlns="">...</xsl:variable>
以及可能沒有前綴的路徑<xsl:value-of select="count($allotmentValuesNodeSet/values/month)"/>
作品。
我已經找到了解決該問題的方法 ,可以在我的情況下使用。
問題和解決方案的簡要說明:
<xsl:variable/>
包含在具有默認名稱空間的xml塊中,則它繼承該名稱空間 count($allotmentValuesNodeSet/inheritedNS:values/inheritedNSmonth)
而不是count($allotmentValuesNodeSet/values/month)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.