我如何从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"。
编辑
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++;
}