获取xml节点值作为字符串c#
本文关键字:字符串 xml 节点 获取 | 更新日期: 2023-09-27 18:10:36
我一直在尝试将XML节点的值拉到字符串中。下面是XML的样子:
<currentvin value="1FTWW31R08EB18119" />
我似乎不知道如何获取这个值。顺便说一下,这个XML不是我写的。到目前为止,我已经尝试了几种方法,包括:
public void xmlParse(string filePath)
{
XmlDocument xml = new XmlDocument();
xml.Load(filePath);
XmlNode currentVin = xml.SelectSingleNode("/currentvin");
string xmlVin = currentVin.Value;
Console.WriteLine(xmlVin);
}
这不起作用。然后我试了:
public void xmlParse(string filePath)
{
XmlDocument xml = new XmlDocument();
xml.Load(filePath);
string xmlVin = xml.SelectSingleNode("/currentvin").Value;
Console.WriteLine(xmlVin);
}
但这也不行。我得到一个空引用异常,说明对象引用不设置为对象的实例。什么好主意吗?
我认为你混淆了XmlNode类的Value
属性,与一个名为"value"的XML属性。
value是xml中的一个属性,所以可以将xpath查询修改为
xml.SelectSingleNode("/currentvin/@value").Value
或者使用所选XmlNode的Attributes
集合
您正在寻找的值属性 "值"(这是少数)而不是节点本身的值-所以您必须使用Attribute
属性:
string xmlVin = xml.SelectSingleNode("/currentvin").Attributes["value"].Value;
或者在第一个版本中:
XmlNode currentVin = xml.SelectSingleNode("/currentvin");
string xmlVin = currentVin.Attributes["value"].Value;
如果整个XML只包含这个节点,那么它可能是xml.DocumentElement.Attributes["value"].Value;