-1

我想获取元素rsm:CIIHExchangedDocument/ram:ID的值 但是我有多个命名空间和空值的问题(我不知道请求的元素是否存在)

可以这样实现:

XElement invoice = XElement.Load(invoiceStream);
XNamespace rsm = invoice.GetNamespaceOfPrefix("rsm");
XNamespace ram = invoice.GetNamespaceOfPrefix("ram");
if ((invoice.Element(rsm + "CIIHExchangedDocument")) != null)
{
    if (invoice.Element(rsm + "CIIHExchangedDocument").Element(ram + "ID") != null)
    {
        string id = invoice.Element(rsm + "CIIHExchangedDocument").Element(ram + "ID").Value;
    }
}

但我认为使用 xPath 会更好地满足我的需求。我想做这样的事情:

invoice.XPathSelectElement("rsm:CIIHExchangedDocument/ram:ID"):

我需要在文档中检索很多不同深度的元素,并且我有很多命名空间。

实现这一目标的最简单方法是什么?执行速度对我来说也很重要。

4

1 回答 1

0

我相信您正在寻找的是 XPathNavigator 类。可以在此处找到如何使用的示例XpathNaivigator

于 2013-04-23T21:18:38.897 回答