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反序列化爲一個對象? –