使用XMLTextReader读取节点值

ken*_*tor 1 c# xml xmlreader

我试图获取节点的值,但它总是返回一个空字符串.据我所知,我必须首先访问节点才能读取它,但我还没有找到一个示例/语法来完成它.我的XMLNode名称是"BuyNowPrice",并且在我的XML文件中多次出现.

using (XmlReader xmlReader = XmlTextReader.Create(@"C:\benatia.xml"))
{
    while (xmlReader.Read())
    {
        if (xmlReader.IsStartElement())
        {
            if (xmlReader.Name == "BuyNowPrice") Console.WriteLine(xmlReader.Name + ": " + xmlReader.Value);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

ada*_*ost 6

要读取元素的内容,需要调用ReadElementContentXxxxx()方法.

if (xmlReader.IsStartElement())
 {
 if (xmlReader.Name == "BuyNowPrice") 
      Console.WriteLine(xmlReader.Name + ": " 
              + xmlReader.ReadElementContentAsString());
}
Run Code Online (Sandbox Code Playgroud)

LinqToXml

XDocument xml = XDocument.Load(file);
foreach(var e in xml.Descendants("BuyNowPrice"))
{
 Console.WriteLine(e.Name + " : " + (string)e);
}
Run Code Online (Sandbox Code Playgroud)

  • 你应该尝试Linq-to-Xml. (2认同)