0
我刚刚学习Linq,并坚持我希望的相当简单。我的xml文档是这样的:根据Linq中的特定属性读取特定的元素值?
<?xml version="1.0" encoding="utf-8"?>
<XDOC>
...
<ItemsDetail>
<Item name="Item1">
<data1>
<Data type="classA">55</Data>
<Data type="classB">66</Data>
</data1>
<data2>
<Data type="classA">77</Data>
<Data type="classB">88</Data>
</data2>
</Item>
</ItemsDetail>
</XDOC>
所以我打开我的XML以上为XDocument
类型,然后查询
var query = from p in ILSXml.Elements("XDOC").Elements("ItemsDetail").Elements("Item")
select p;
然后我上查询运行foreach
。
foreach (var record in query)
{
Console.WriteLine("Name: {0}", record.Attribute("Name").Value);
Console.WriteLine("Data1 ClassA: {0}", record.Element("data1").Element("Data").Attribute("classA").Value);
}
因此该行:
Console.WriteLine("Data1 ClassA: {0}", record.Element("data1").Element("Data").Attribute("classA").Value);
不工作这,就是我是非常期待的。我是否必须运行另一系列查询或运行一些内联匿名方法?
哦,请不要评论xml,它不是我的,我只需要使用它。
这很有效,类似于我刚才看到的,虽然错过了.First。 有没有更好的方法来处理这样的XML文档? – 2009-08-24 02:14:13
如果您可以亲自使用描述文档的XSD(XML模式文档),那么我一定会考虑生成真正的类并使用标准的XML序列化。 – 2009-08-24 02:24:51