繁体   English   中英

如何在C#中通过XPath读取根属性

[英]How to read root attribute by XPath in c#

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属性?

尝试以下代码段

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

由于您需要root元素,因此我不会使用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,您可能会看到此信息

希望我能帮上忙!

看看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));

输出:Date =“ 13.11.2013 11:14:13” NNNNNNNNNNNN

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM