Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取xml节点值作为字符串C_C#_Xml - Fatal编程技术网

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

C# 获取xml节点值作为字符串C,c#,xml,C#,Xml,我一直在尝试将XML节点的值拉入字符串。以下是XML的外观: <currentvin value="1FTWW31R08EB18119" /> 这不管用。然后我试着: public void xmlParse(string filePath) { XmlDocument xml = new XmlDocument(); xml.Load(filePath); string xmlVin = xml.SelectSin

我一直在尝试将XML节点的值拉入字符串。以下是XML的外观:

<currentvin value="1FTWW31R08EB18119" /> 
这不管用。然后我试着:

    public void xmlParse(string filePath)
    {
        XmlDocument xml = new XmlDocument();
        xml.Load(filePath);
        string xmlVin = xml.SelectSingleNode("/currentvin").Value;
        Console.WriteLine(xmlVin);

    }

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

您要查找的是属性值的值,而不是节点本身的值-因此您必须使用属性属性:

string xmlVin = xml.SelectSingleNode("/currentvin").Attributes["value"].Value;
或在第一版中:

XmlNode currentVin = xml.SelectSingleNode("/currentvin");
string xmlVin = currentVin.Attributes["value"].Value;

我认为您混淆了XmlNode类的Value属性和名为Value的XML属性

值是xml中的一个属性,因此可以将xpath查询修改为

xml.SelectSingleNode("/currentvin/@value").Value

或者使用所选XmlNode的属性集合。

如果整个XML仅包含此节点,则可以是XML.DocumentElement.Attributes[value].value

我相信这就是我要寻找的属性。可悲的是,这段代码对我没有帮助。我仍然得到空引用异常。这就是XML文件中的全部内容,只有一个节点吗?是否确实正在加载XML文档?最后一个最好的结果是您的XPATH查询不正确。确实如此!谢谢你的帮助!这些看起来确实像是我想要得到的,但它们不起作用。我仍然收到空引用异常。@admiral142:请发布您的完整XML-如果您甚至没有获得节点,您可能会以错误的方式查询它,即错误的路径,或者您的XML可能使用名称空间XML中实际上有多个节点,我只是尝试获取currentvin节点中属性值的值:P那么您能提供完整的XML文件示例吗?不幸的是,XML文档是专有的,因此我无法发布完整的内容。谢谢你的帮助!每个人都有很好的建议。我将把这个问题上报给我所在部门的其他人,因为看起来我们必须在内部解决它
xml.SelectSingleNode("/currentvin/@value").Value