2011-06-27 28 views
0

XML:面臨的問題使用XPath如果然後其他概念

<additionalFields> 
    <field name="dataKey">3868</field> 
    <field name="distribution">140</field> 
</additionalFields> 

我想執行下列如果別的XPath語句。

String text = nav.Evaluate("if(/additionalFields/field[@name='distribution']/text() = '140') then 'C' else ' ' ").ToString(); 

但是我正在以下錯誤消息:

'如果(/ additionalFields /字段[@名稱=' 分配'] /文本()= '140'),那麼 'C' 別的'''有一個無效的標記。

有沒有其他方法可以實現結果?任何幫助,將不勝感激。

回答

0

我想你正在使用.NET框架。它確實尚未實現所有XPath 2.0功能。 在你的具體例子中,沒有問題,因爲你可以在你的代碼中執行邏輯。

如果這不符合您的需要,您可以使用XSLT(儘管對於簡單的需求它太複雜了)。

的另一種方法將是使用支持的XPath 2.0的XQuery第三方庫,例如SAXONXQSharp

+0

是的,上面只是在.Net框架中。這裏代碼中的邏輯將強制邏輯被硬編碼。我們需要它由顧客意願驅動。一個簡單的if else是必需的,但如果其他條件值需要由客戶驅動 – user817406