1
<?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++;
  }

但我得到nullxn.Text

我想要的只是获取水果的值,例如本例中的“hahahah”。

编辑

我现在更改了我的 XML。

4

2 回答 2

5
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);
}

打印相同

于 2013-04-02T08:46:35.443 回答
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++;
}
于 2013-04-02T08:46:43.097 回答