好的,既然我上一次关于这个问题的问题有点不对劲,我决定制作一个更正确的新问题。
我试图读取如下所示的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中删除它,它会给我报告。
为了测试,我尝试了两个函数,一个删除所有名称空间,另一个将它们设置为空白。我在循环之前运行了这些函数。这有效,但当我尝试将其保存为新的xml文件时,会给我一个关于命名空间的错误。这真的是错误的做法。
如何使用此命名空间读取这些报告?
答案 0 :(得分: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