2009-10-02 166 views
0

我從SharePoint得到這個返回值...我剛纔包括XML片段的第一部分...Xpath的,檢索節點值

<Result ID=\"1,New\" xmlns=\"http://schemas.microsoft.com/sharepoint/soap/\"> 
<ErrorCode>0x00000000</ErrorCode><ID /><z:row ows_ID=\"9\" 

它填充一個XmlNode的節點對象。

如何使用xPath可以獲取ows_id的值?

到目前爲止我的代碼...

XmlNode的結果= list.UpdateListItems( 「MySharePointList」,批號);

更新

到目前爲止,我有這樣的:results.FirstChild.ChildNodes [2] .Attributes [ 「ows_ID」]值

但我不知道它是多麼可靠,任何人都可以改進它?

+0

這不完全是xpath,而只是DOM訪問。 使用傳統的xpath庫會爲您提供與您的查詢相匹配的節點列表 - 嘗試它。 – Shirkrin 2009-10-02 09:48:41

回答

2

我不知道,如果它不一定是一個改善,但也可能是更具可讀性,但更詳細:

/*[local-name() = 'Result']/*[local-name() = 'row']/@ows_ID 

有可能是更多的給你貼所以這個XPath查詢可能需要的片段當用於實際的xml結果時使用修正。

函數local-name()允許您忽略名稱空間,這可能是一個恩惠和一個詛咒。:)

0

當從根開始:

/結果/ Z:行/ @ ows_ID

也如果存在多個結果可以提高搜索:

/結果[@ ID ='1, new']/z:row/@ ows_ID

0

具體的xpath調用取決於您使用的庫(例如libxml xpath實現)。 但通用XPath語句應該是:

"//z:row[@ows_ID='9']" 

這將選擇所有的Z:與值的屬性ows_ID 9 您可以修改此查詢,以匹配所有的Z排節點:行節點或只用具體屬性。

詳情請看:W3Schools XPath syntax

+0

我不知道ows_id的價值,多數民衆贊成我想要檢索。關於如何將該值作爲字符串的任何想法?我正在使用C# – 2009-10-02 08:53:17

0
<xsl:value-of select="Result/b:row/@ows_ID"/> 

<xsl:value-of select="Result/b:row[@ows_ID = '9']"/> 

根據什麼樣的價值,你想