美好的一天,C#查询XML文档
我想查询一个XML文档,有以下查询:
XElement root = XElement.Load(@"..\..\Data.xml");
var entries = root.Descendants()
.Where(x => x.Name.LocalName == "Entry")
.ToList();
Console.WriteLine("There are {0} nodes...", entries.Count());
foreach (XElement v in entries)
{
Console.WriteLine(v.Value);
}
与此代码的工作,因为它拉入口节点的正确数目。该条目 节点样子:
<?xml version="1.0" encoding="UTF-8"?>
<Database xmlns="http://www.someurl.org/schemas">
<InfoFromRecord>
<BaseData>
<Entry>
<Date>2006-03-08</Date>XD
<Time>09:20:00</Time>
<EnteredBy>DNS</EnteredBy>
<TextEntry>Record 1</TextEntry>
</Entry>
<Entry>
<Date>2006-03-08</Date>
<Time>09:33:00</Time>
<EnteredBy>MW</EnteredBy>
<TextEntry>Record 2</TextEntry>
</Entry>
<Entry>
<Date>2006-03-08</Date>
<Time>08:58:00</Time>
<EnteredBy>BH</EnteredBy>
<TextEntry>Record 3</TextEntry>
</Entry>
</BaseData>
</InfoFromRecord>
</Database>
的问题是,我想只提取日期和时间,不是所有的四个字段。
我试过了,它没有工作。它看起来像document.Root.Descendants(“Entry”)中没有任何内容。我认为后裔会得到文件中的任何节点。 – coson 2012-08-16 16:08:16
@coson编辑与更新回答。命名空间没有被考虑在内。 – vcsjones 2012-08-16 16:14:06
工作。原来,没有前缀的默认名称空间需要考虑。 – coson 2012-08-16 16:17:41