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