【发布时间】:2017-05-18 12:02:02
【问题描述】:
我有下一个 XML 文件:
<root>
<location id='IBM'>
<property name='locale' value='en-EN' />
<property name='path' value='c:\program files\IBM' />
<property name='option' value='licence' />
<package kind='offering' name='IBM tools'>
<property name='cic.name' value='IBM Studio'/>
<property name='cic.version' value='13.4'/>
</package>
</location>
<location id='Microsoft'>
<property name='locale' value='en-EN' />
<property name='path' value='c:\program files\MS' />
<property name='option' value='licence' />
<package kind='offering' name='Microsoft'>
<property name='cic.name' value='Windows XP'/>
<property name='cic.version' value='10.3.2'/>
</package>
</location>
</root>
如何从 XML 结构中的 cic.name 和 cic.version 获取这些值:
IBM 工作室 13.4 视窗 10.3.2
我试过了
XElement roots = XElement.Load(@"C:\test.xml");
foreach (var i in roots.Descendants("location"))
{
Console.WriteLine(i.Attribute("id").Value);
}
但我只得到: IBM 微软
谢谢!
【问题讨论】:
-
这不是有效的 XML。它有两个根元素,一些“属性”节点错过了结束标记。
-
我知道,我只是复制了整个文档的几行。
标签: c# xml linq linq-to-xml xelement