0
假设我有以下XML格式。使用选择内的选择
<data>
<appName>Microsoft Word</appName>
<appId>123</appId>
</data>
在XML中有多个数据树的地方,我有以下代码来构建数据对象列表。
List<DataObj> dataObjList =
(
from dataNode in xmlDoc.Elements("data")
select new DataObj
{
appName = dataNode.Element("appName"),
appId = dataNode.Element("appId")
}
).ToList();
不过,我遇到了问题,如果我增加一个额外的树中的数据标签下,像这样:
<data>
<appName>Microsoft Word</appName>
<appId>123</appId>
<appOptions>
<Win7Compat>true</Win7Compat>
<Win7x64Compat>false</Win7x64Compat>
</appOptions>
</data>
我使用下面的代码:
List<DataObj> dataObjList =
(
from dataNode in xmlDoc.Elements("data")
select new DataObj
{
appName = dataNode.Element("appName"),
appId = dataNode.Element("appId")
appOptions =
(
from appNode in dataNode.Elements("appOptions")
select new AppOptionsObj
{
win7Compat = appNode.Element("Win7Compat"),
win7x64Compat = appNode.Element("Win7x64Compat")
}
) as AppOptionsObj,
}
).ToList();
我的appOptions对象始终被视为null。我有一种感觉,我没有正确解析子树。
它不应该是'从appNode在dataNode.Element(“appOptions”)'(单)?另外,您发布的内容不是有效的XML。 'Win7Compat'和下一个兄弟没有关闭。 –
我不相信这是你运行的代码 - 这里有明确的语法错误和拼写错误。如果您需要帮助,您必须向我们展示您正在使用的代码。发布的代码只会给出一堆错误。 – Hogan
你为什么不简单地将这个XML反序列化为一个对象? –