如何从XML读取值

本文关键字:读取 XML | 更新日期: 2023-09-27 18:06:52

数据:
<sys>
  <id>SCPUCLK</id>
  <label>CPU Clock</label>
  <value>2930</value>
</sys>
<sys>
  <id>CPUTEMP</id>
  <label>CPU Temp</label>
  <value>39</value>
</sys>

这是我用来读取数据的代码:

XmlDocument document = new XmlDocument();
document.LoadXml(data);
XmlElement node = document.SelectSingleNode("/sys/value") as XmlElement;
Console.WriteLine("node = " + node);

问题:Console.WriteLine("node = " + node);除了node:之外没有给我任何输出,但没有像上面示例中的2930这样的实际值。

谢谢

如何从XML读取值

使用节点。即价值。div, XmlElement.value

作为使用XmlDocument的替代方法,您还可以使用LINQ to XML(这是我的首选):

using System.Xml.Linq;
XDocument xDoc = new XDocument();
// Parse loads the XDocument with XML from a string
xDoc = XDocument.Parse(data);
string node = (from x in xDoc.Root.Elements("value")
               select x.Value).SingleOrDefault();
Console.WriteLine("node = " + node);

使用XmlDocument没有错,特别是对于您正在做的事情,但是当您有机会时,您可能想要检查LINQ to XML,因为我发现它比XmlDocument更容易使用。

如果您想获得所有的"value"元素,只需从查询中删除SingleOrDefault(),然后您可以遍历结果,如下所示:

var nodes = from x in xDoc.Root.Elements("value")
           select x.Value;
foreach (var node in nodes)
{
    Console.WriteLine("node = " + node);
}

这是一个值得一看的网站:LINQ到XML - 5分钟概述