0

わかりました、この問題に関する私の最後の質問は少し間違っていたので、より正確な新しい質問を作成することにしました。

次のような 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>
    </Headerstuff>
    <Reports>
      <Report>
        <Id>01</Id>
        <Name>AA</Name>
      </Report>
      <Report>
        <Id>02</Id>
        <Name>BB</Name>
      </Report>
    </Reports>
  </AllThingsInThisDocument>
</Document>

このコードを使用してレポートをループすると、エラーは発生しませんが、null が返されます。

Dim xmlr As XDocument = XDocument.Load("MyMxlFile.xml")
For Each report As XElement In xmlr.Descendants("Report")
   'Do some cool stuff
Next

xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02"エラーが発生するのはそれであることがわかりました。これを xmlfile から削除すると、レポートが表示されます。

テストのために、すべての名前空間を削除する関数と空白に設定する関数の 2 つの関数を試しました。ループする前にこれらの関数を実行しました。これは機能しますが、名前空間を新しい xml ファイルとして保存しようとすると、名前空間に関するエラーが表示されます。そして、これは本当に間違った方法のように感じます。

この名前空間でこれらのレポートを読むにはどうすればよいですか?

4

1 に答える 1

0
Dim df As XNamespace = xmlr.Root.Name.Namespace

For Each report As XElement In xmlr.Descendants(df + "Report")
  Console.WriteLine(report.Element(df + "Name").Value)
Next
于 2013-06-11T15:34:02.507 に答える