1

我有充满 xpath 的类,现在需要一个特定的命名空间。我怎样才能做到这一点?重构此代码的最简单方法是什么?找替代品?

如果我不提前知道命名空间,那么将来获取特定节点的最佳方式是什么?

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

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

1 回答 1

1

您可以试试这个XML 库。使用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,我无法确定它。

于 2013-02-13T19:51:12.213 回答