所以我一直在看微软的例子:
http://msdn.microsoft.com/en-us/library/bb387061.aspx
在那里,他们这样做:
IEnumerable<string> partNos =
from item in purchaseOrder.Descendants("Item")
select (string) item.Attribute("PartNumber");
他们使用“后代”来处理 purchaseOrder 中实际上是 3 层深的项目。
现在,当我尝试用我的 XML 做同样的事情时,我什么也得不到。
我的 XML:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<name>Roulette</name>
<modules>
<module>application</module>
<module>test</module>
</modules>
我的代码:
XDocument mainPOM = XDocument.Load(above_xml);
List<string> pomLocations = (from loc in mainPOM.Descendants("module") select (string)loc.Name.LocalName).ToList();
Console.WriteLine(pomLocations.Count);
不幸的是, pomLocations 的长度为 0 :(。
有人可以告诉我我到底在哪里搞砸了吗?