将名称空间添加到xpath
问题描述:
我有充满xpaths的类,现在需要specfic命名空间。我怎样才能做到这一点?什么是重构此代码最简单的方法?找到替代?将名称空间添加到xpath
如果我事先不知道命名空间,将来如何获取特定节点的最佳方法是什么?
susr1 = root.SelectSingleNode("/PurchaseOrderRequest/DocumentHeader/DocumentInformation/DocumentIdentification/Type");
susr1 = root.SelectSingleNode("/PurchaseOrderRequest/ssdh:DocumentHeader/ssdh:DocumentInformation/ssdh:DocumentIdentification/ssdh:Type");
答
您可以试试这个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,我无法测试它。