2012-03-15 167 views
2

是否可以使用XPath設置屬性值,如下所示?是否可以使用XPath設置屬性值?

XPathNavigator xNav = doc.CreateNavigator(); 
    xNav.MoveToAttribute("requestID", String.Empty); 

    xNav.SetAttributeValue?? // need correct method to set a (new) value for current node-attribute.. 
+0

由於某種原因,似乎沒有可能:該屬性的CanEdit場是假的...... 我試圖從完全的XmlDocument刪除屬性,並試圖打電話 xNav.CreateAttribute(的String.Empty「的requestId 「,string.Empty,」TESTIDVALUE「); 但該方法也不支持...當然必須是一種方法來添加/編輯atttribute與XPath? – stefjnl 2012-03-15 15:41:14

+0

無法用XPath修改任何東西,但它應該允許您找到要修改的屬性節點,因此您可以使用一些外部API來進行修改;但不依賴於XPath,它取決於外部API。 – 2012-03-15 17:15:26

回答

1

很可能(在你沒有顯示的代碼中),XPathNavigator是在XPathDocument之外構造的。 XPathDocument根據定義是隻讀的(這就是爲什麼它更高效)。

MSDN documentation

的XPathNavigator由XPathDocument的對象創建的對象 只讀同時的XPathNavigator對象通過的XmlDocument創建的對象 可以編輯。」

如果你想用DOM更新節點,你必須使用另一個對象 - 比如一個XmlDocument。

當然,人們在7-8年前才意識到DOM並不是處理XML的最佳方式。

我絕對推薦使用XSLT進行XML處理 - 這是一種專門爲樹轉換而設計的語言

相關問題