获取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);
    }

但这也不行。我得到一个空引用异常,说明对象引用不设置为对象的实例。什么好主意吗?

获取xml节点值作为字符串c#

我认为你混淆了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;