【发布时间】:2014-12-02 18:25:41
【问题描述】:
我正在尝试从 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>
【问题讨论】:
-
只是为了检查 - 您确定
value包含 XML 并已加载,对吗?您应该能够通过它进行调试并通过将鼠标悬停在其上轻松检查。 -
我认为您的问题可能是您没有查看根目录 - 请尝试
_xml.Root.Elements("effect")并让我知道这是否有效。它可能没有执行任何代码,因为您从 LINQ-XML 查询中返回了 0 个项目。 -
@Phoenixblade9 值确实为空。并且没有_xml.Root扩展方法
-
抱歉,我习惯使用 XDocument 而不是 XElement - 让我为你准备一些东西。