我想获取元素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"):
我需要在文档中检索很多不同深度的元素,并且我有很多命名空间。
实现这一目标的最简单方法是什么?执行速度对我来说也很重要。