我刚开始学习处理XML,在尝试从一个spring.net配置文件中获取特定标签时遇到了奇怪的问题。通过使用测试XML文件来缩小问题范围,我发现采用以下代码:
List<XElement> nodes = xmlFile.Descendants("B").ToList();
提供一个非空列表,其中包含以下文件:
<?xml version="1.0" encoding="utf-8" ?>
<A fakeAttribute="aaa">
<B id="DbProvider"/>
</A>
但是对于以下文件,它提供一个空字符串:
<?xml version="1.0" encoding="utf-8" ?>
<A xmlns="aaa">
<B id="DbProvider"/>
</A>
唯一的区别在于文件的属性。我无法想象这背后的解释。感谢您的帮助。
var lst = doc.Descendants().Where(p => p.Name.LocalName == "B").ToList();
- xanatos