2013-02-13 202 views
1

我有充滿xpaths的類,現在需要specfic命名空間。我怎樣才能做到這一點?什麼是重構此代碼最簡單的方法?找到替代?將名稱空間添加到xpath

如果我事先不知道命名空間,將來如何獲取特定節點的最佳方法是什麼?

susr1 = root.SelectSingleNode("/PurchaseOrderRequest/DocumentHeader/DocumentInformation/DocumentIdentification/Type"); 

susr1 = root.SelectSingleNode("/PurchaseOrderRequest/ssdh:DocumentHeader/ssdh:DocumentInformation/ssdh:DocumentIdentification/ssdh:Type"); 

回答

1

您可以試試這個XML Library。使用XPathElement()。這是一個.net 3.5解決方案,如果你可以使用它。

XElement root = XElement.Load(file) or .Parse(string) 

您的XPath的。然後要麼應該只要不存在具有相同的名稱(但不同的命名空間)衝突節點工作。

XElement susr1 = root.XPathElement("/PurchaseOrderRequest/DocumentHeader/DocumentInformation/DocumentIdentification/Type"); 

XElement susr1 = root.XPathElement("/PurchaseOrderRequest/ssdh:DocumentHeader/ssdh:DocumentInformation/ssdh:DocumentIdentification/ssdh:Type"); 

圖書館應該找出你的名字空間。如果沒有示例xml,我無法測試它。

相關問題