0

XML 是

<?xml version="1.0" encoding="utf-8"?>
    <Stock Date="13.11.2013 11:14:13">
      <Assortment>
        <ID>1</ID>
        <Item>NNNNNNNNNNNN</Item>
        <Quantity>12</Quantity>
      </Assortment>
    </Stock>

我的代码是

     System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
     doc.Load(LocalPath);
     dat = doc.SelectSingleNode("//Stock/@Date").Value;

如何在 XPath 中读取 Stock 的 Date 属性?

4

3 回答 3

0

试试下面的片段

System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.Load(LocalPath);
var dat = doc.SelectSingleNode("/Stock/@Date");
于 2013-11-13T06:48:30.803 回答
0

由于您需要元素,因此我不会使用 XPath。XPath 用于在不知道其在 XML 树 (DOM) 中的位置的情况下查找某些内容。你可以试试这样的。

// Load the document and set the root element.
XmlDocument doc = new XmlDocument();
doc.Load(LocalPath);
XmlNode rootNode = doc.DocumentElement;
var dat = rootNode.Attributes["Date"].Value;

您可以在 XML DOM 解析中看到这一点,然后使用 XPath。

希望我有所帮助!

于 2013-11-13T07:20:58.470 回答
0

看一下 linkToXml (Systme.xml.linq),它是一种非常干净简单的解析 xml 的方法,这是上面的替代方法

 var doc = XDocument.Load("XMLFile1.xml");
 doc.Root.Attributes().ToList().ForEach(a => Console.WriteLine(a));
 doc.Root.Descendants().Where(d => d.Name.LocalName == "Item").ToList().ForEach(a => Console.WriteLine(a));

输出:日期="13.11.2013 11:14:13" NNNNNNNNNNNN

于 2013-11-13T07:52:32.020 回答