<?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++;
}
但我null
获得了xn.Text
。
我想要的只是获得水果的价值,比如&#34; hahahah&#34;在这个例子中。
修改
我现在改变了我的XML。
答案 0 :(得分:5)
var xml = XDocument.Parse(getXML());
var fruits = xml.Descendants("fruit").Select(n => n.Value);
Console.WriteLine(string.Join(Environment.NewLine, fruits));
打印
hahahaha
将XPath用于 .net 2.0 版本
XmlDocument xml = new XmlDocument();
xml.LoadXml(getXML());
XmlNodeList fruits = xml.SelectNodes("//fruit");
foreach (XmlNode fruit in fruits)
{
Console.WriteLine (fruit.InnerText);
}
打印相同的
答案 1 :(得分:1)
试试这个:
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++;
}