Foreach 循环不会读取 XML

本文关键字:读取 XML 循环 Foreach | 更新日期: 2023-09-27 18:32:47

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

似乎可以读取XML,如果有一个断点并查看_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>

Foreach 循环不会读取 XML

在你的例子中,效果是根。

使用这个:

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

你不需要在查询中包含"效果"——这已经是根了。 只需将其用作查询:

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

这是一个小提琴,证明它有效。