要素rsm:CIIHExchangedDocument/ram:IDの値を取得したいのですが、 複数の名前空間と null 値に問題があります (要求された要素が存在するかどうかわかりません)
これは次の方法で実現できます。
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"):
ドキュメント内のさまざまな深さの多くの要素を取得する必要があり、多くの名前空間があります。
これを達成するための最も簡単な方法は何ですか? 実行速度も私にとって重要です。