Foreach循环不会读取XML

时间:2014-12-02 18:25:41

标签: c# xml .net-4.5 xelement

我正在尝试从XML中读取一些数据。我在另一个应用程序中使用相同的代码,几乎相同的XML布局,似乎工作.. 但我无法使用此代码在foreach循环中运行任何代码:

如果If有一个断点并且查看_xml.Elements

,它似乎读取了XML
 XElement value in _xml.Elements("effects").Elements("effect")

C#

 XElement _xml = XElement.Load("Effects.xml");
                {
                    foreach (XElement value in _xml.Elements("effects").Elements("effect"))
                    {
                       //will not execute any code in here.
                        DVOXML _item = new DVOXML();
                        _item.Name = value.Element("name").Value;
                        _item.Param = value.Element("params").Value;


                    }
                }

XML:

  <?xml version="1.0" ?>
 <effects>
   <effect>
    <name>effect1</name>
    <params>xmldata</params>
  </effect>
  <effect>
    <name>effect2</name>
    <params>xmldata</params>
  </effect>
</effects>

2 个答案:

答案 0 :(得分:2)

在你的情况下,效果是根。

使用此:

foreach (XElement value in _xml.Elements("effect"))
{
  .....
}

答案 1 :(得分:2)

您不需要包含&#34;效果&#34;在您的查询中 - 已经是根。只需将此作为您的查询:

foreach (XElement value in _xml.Elements("effect"))

这里有fiddle证明它有效。