1
私は次のXML文書を考えてみましょう:LINQでXML文書を照会する方法は?
<response>
<businessEntity>
<ABN>
<identifierValue></identifierValue>
<isCurrentIndicator></isCurrentIndicator>
<replacedIdentifierValue xsi:nil="true" />
<replacedFrom></replacedFrom>
</ABN>
<entityStatus>
<entityStatusCode> </entityStatusCode>
<effectiveFrom></effectiveFrom>
<effectiveTo></effectiveTo>
</entityStatus>
<entityType>
<entityTypeCode> </entityTypeCode>
<entityDescription> </entityDescription>
</entityType>
<goodsAndServicesTax>
<effectiveFrom></effectiveFrom>
<effectiveTo></effectiveTo>
</goodsAndServicesTax>
<legalName>
<givenName> </givenName>
<otherGivenName />
<familyName> </familyName>
<effectiveFrom></effectiveFrom>
<effectiveTo></effectiveTo>
</legalName>
<mainBusinessPhysicalAddress>
<stateCode> </stateCode>
<postcode></postcode>
<effectiveFrom></effectiveFrom>
<effectiveTo></effectiveTo>
</mainBusinessPhysicalAddress>
</businessEntity>
</response>
私は、たとえばgivenName属性とFamilyNameで取得したい場合は、私はこれを行うことができます。
私は、テーブルにアクセスし、取り込むことができますvar businesses = doc.Descendants(ns + "businessEntity")
.Elements(ns + "legalName")
.Select(node => new
{
effectiveFrom = node.Element(ns + "effectiveFrom").Value,
givenName = node.Element(ns + "givenName").Value,
familyName = node.Element(ns + "familyName").Value,
}).ToList();
しかし、私はどのように文書全体を照会して、ABNやentityTypeのような、私が望むすべてのノードを得るかはわかりません。私はリストを作成し、各兄弟のコードの一部をlegalNameに複製する必要がありますか?
ありがとうございます。
ありがとう、期待どおりに動作しますが、値が空であればエラーが発生しますが、これをどうすれば最もうまく処理できますか? – Nick
@ニック:どの部分が「空」であり、具体的には「空」(完全に欠落していますが、空の文字列を含んでいますか? 'foo.Element(...)。Value 'を'(string)foo.Element(...) 'に変更してみることもできます。それでも問題が解決しない場合は、何が空で、どのように空であるかを詳細にお知らせください。説明する最も簡単な方法は、失敗したXML文書、試行したコード、エラーメッセージを投稿することです。あなたがそれをすることができないなら、それを言葉で説明しようとすることができます。 –
例えばgivennameに値が含まれていない場合はnullreferenceexceptionがコード – Nick