获取xml节点值作为字符串C#
我一直在试图将XML节点的值拉成一个字符串。这里是XML的样子:获取xml节点值作为字符串C#
<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
财产,有一个名为“值”的XML属性。
值是在XML属性所以无论是修改您的XPath查询是
xml.SelectSingleNode("/currentvin/@value").Value
或用户的Attributes
收集选定的XmlNode的。
我相信这是我的属性寻找。可悲的是,这段代码并没有帮助我。我仍然收到空引用异常。 – admiral142
这就是你在XML文件中只有一个节点吗?你确定你实际上正在加载XML文档吗?最后最好的是你的XPATH查询不正确。 –
当然是!谢谢您的帮助! – admiral142
您正在寻找属性“值”(这是极少数)不是节点本身的价值的价值 - 所以你必须使用Attribute
属性:
string xmlVin = xml.SelectSingleNode("/currentvin").Attributes["value"].Value;
还是在第一个版本:
XmlNode currentVin = xml.SelectSingleNode("/currentvin");
string xmlVin = currentVin.Attributes["value"].Value;
这些肯定看起来像我试图得到,但他们没有工作。我仍然收到一个空引用异常。 – admiral142
@ admiral142:请发布您的完整XML - 如果您甚至没有得到可能以错误方式查询的节点(即错误的路径或您的XML可能使用命名空间) – BrokenGlass
如果你的整个XML只包含这个节点,则可能是xml.DocumentElement.Attributes["value"].Value;
XML中实际上有几个节点,我只是试图在currentvin节点中获取属性“value”的值。 :P – admiral142
那么您能否提供完整的XML文件示例? –
不幸的是,XML文档是专有的,这样我不能发布的全部内容。感谢你的帮助!每个人的伟大建议。我会把这个升级到我的部门的其他人,因为看起来我们必须在内部解决它。 :) – admiral142