いくつかの XML データ (以下のサンプルに似ています) があり、コードで値を読み取りたいと考えています。
各要素にアクセスするためにデフォルトの名前空間を指定しなければならないのはなぜですか? すべての要素にデフォルトの名前空間が使用されることを期待していました。
私の目標を達成するためのより論理的な方法はありますか?
サンプル XML:
<?xml version="1.0" encoding="UTF-8"?>
<ReceiptsBatch xmlns="http://www.secretsonline.gov.uk/secrets">
<MessageHeader>
<MessageID>00000173</MessageID>
<Timestamp>2009-10-28T16:50:01</Timestamp>
<MessageCheck>BX4f+RmNCVCsT5g</MessageCheck>
</MessageHeader>
<Receipts>
<Receipt>
<Status>OK</Status>
</Receipt>
</Receipts>
</ReceiptsBatch>
私が求めているxml要素を読み取るためのコード:
XDocument xDoc = XDocument.Load( FileInPath );
XNamespace ns = "http://www.secretsonline.gov.uk/secrets";
XElement MessageCheck = xDoc.Element(ns+ "MessageHeader").Element(ns+"MessageCheck");
XElement MessageBody = xDoc.Element("Receipts");