我搜索了很长时间以获得答案,但我可以看到它不起作用。 我有一个XML文件,我想从节点读取一个特定的元素。 例如,这是XML:
<Root>
<TV>
<ID>2</ID>
<Company>Samsung</Company>
<Series>13523dffvc</Series>
<Dimesions>108</Dimesions>
<Type>LED</Type>
<SmartTV>Yes</SmartTV>
<OS>WebOS</OS>
<Price>1993</Price>
</TV>
</Root>
我希望将代码中的ID元素作为变量获取,这样我就可以为下一个要添加的项目增加它。 这是此时的代码,但我找不到从项目本身中选择内容的方法。
XDocument doc = XDocument.Load("C:TVList.XML");
XElement TV = doc.Root;
var lastElement = TV.Elements("TV").Last()
答案 0 :(得分:2)
使用这样来获取id值
XDocument doc = XDocument.Load(@"C:\TVList.XML");
XElement root = doc.Element("Root");
XElement tv = root.Element("TV");
XElement id = tv.Element("ID");
string idvalue = id.Value;
还会将您的<Type>LED</Tip>
xml标记设为<Type>LED</Type>
以进行匹配
答案 1 :(得分:2)
查询最后一个电视的ID(如果没有元素,则会返回0
):
var lastId = (int) doc.Descendants("TV")
.Elements("ID")
.LastOrDefault();
您可能还需要最高ID(如果他们没有按顺序排列):
var maxId = doc.Descendants("TV")
.Select(x => (int)x.Element("ID"))
.DefaultIfEmpty(0)
.Max();
有关正常工作的演示,请参阅this fiddle。