我如何从XML中获得我想要的节点

本文关键字:我想要 节点 XML | 更新日期: 2023-09-27 18:07:05

<?xml version="1.0" encoding="utf-8" ?> 
  <Root>
       <Fruits>
            <Fruit>hahahaha</Fruit>
       </Fruits>
  </Root>

如果我尝试这段代码,

  string[] cFruitName; int i=0;
  XmlDocument a= new XmlDocument();
  a.LoadXml(getXML());
  foreach (XmlNode xn in a)
  {
     cFruitName[i] = xn.Text;
     i++;
  }

但是我用xn.Text得到null

我只想得到水果的值,就像这个例子中的"hahahah"。

编辑

我如何从XML中获得我想要的节点

var xml = XDocument.Parse(getXML());
var fruits = xml.Descendants("fruit").Select(n => n.Value);
Console.WriteLine(string.Join(Environment.NewLine, fruits));

打印

hahahaha

.net 2.0版本使用XPath

XmlDocument xml = new XmlDocument();
xml.LoadXml(getXML());
XmlNodeList fruits = xml.SelectNodes("//fruit");
foreach (XmlNode fruit in fruits)
{
    Console.WriteLine (fruit.InnerText);
}

打印相同的

试试这个:

string[] cFruitName; int i=0;
XmlDocument a= new XmlDocument();
a.LoadXml(getXML());
foreach (XmlNode xn in a.Where(x=>x.Text != null))
{
   cFruitName[i] = xn.Text;
   i++;
}

string[] cFruitName; int i=0;
XmlDocument a= new XmlDocument();
a.LoadXml(getXML());
foreach (XmlNode xn in a.Where(x=>x.Name == "fruit"))
{
   cFruitName[i] = xn.Text;
   i++;
}