C#解析XML文件
问题描述:
我在堆栈溢出中查看了一些线程,找不到答案。我有一个XML文件设置如下所示:C#解析XML文件
<entry id="1" type="a">
<name>string 1</name>
<description>any description</description>
</entry>
<entry id="2" type="b">
<name>string 2</name>
<description>any description #2</description>
</entry>
,我需要选择全部“项”标签,并返回ID,类型,条目的内部名称和描述标签。我如何用C#做到这一点?
感谢,
答
请记住,您的xml文件应该有单根节点。下面是使用LINQ到解析XML:
var xdoc = XDocument.Load(path_to_xml);
var entries = from e in xdoc.Descendants("entry")
select new {
Id = (int)e.Attribute("id"),
Type = (string)e.Attribute("type"),
Name = (string)e.Element("name"),
Description = (string)e.Element("description")
};
查询将返回对应于每个条目元素的匿名对象的序列(包含属性编号,类型,名称和说明)。
+0
@ user1425433 [XML文档必须具有根元素](http://www.w3schools.com/xml/xml_syntax.asp)在您的问题中,根级别有两个* entry *元素 –
这看起来确实像XML ......因此,我会使用XDocument和XML的LINQ扩展。如果您需要增加的功能,您也可以使用XPath(在某些情况下以牺牲复杂性为代价)。请参阅http://*.com/questions/566167/query-an-xdocument-for-elements-by-name-at-any-depth –
http://msdn.microsoft.com/en-us/library/system .xml.linq.xdocument.descendants.aspx(Linq to XMl with Descendants是一个很好的起点)。 –