次のような XML ファイルがあります。
<?xml version="1.0" encoding="utf-8"?>
<Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02">
<AllThingsInThisDocument>
<Headerstuff>
<Date>2013-06-11</Date>
</Headerstuff>
<Reports>
<Report>
<Id>01</Id>
<Name>AA</Name>
</Report>
<Report>
<Id>02</Id>
<Name>BB</Name>
</Report>
<Report>
<Id>03</Id>
<Name>CC</Name>
</Report>
</Reports>
</AllThingsInThisDocument>
</Document>
私がやりたいことは、すべてのレポートをループすることです。そのために次のコードを使用します。
Dim xmlr As XDocument = XDocument.Load("MyMxlFile.xml")
For Each report As XElement In xmlr.Descendants("Report")
'Do some cool stuff
Next
これはうまくいきません。私が見つけたのは、これ<Document>
を台無しにするのはタグだということです。これらのタグを削除すると、やりたいことを理解してくれます。理由を知っている人はいますか?
編集:まあ、それがで動作することもわかりました<Document>
。この場合、それを台無しにするのはxmlnsです。これを修正する理由および/または方法を知っている人はいますか? エラーは発生しませんが、ループの結果として null が返されます。