【发布时间】:2017-11-13 00:43:20
【问题描述】:
我想用 sql server 推送的数据创建一个 xml 文件,我想像这样构建 xml:
<Items Class="1" Grade="20" Score="150">
<Item ID="1" TemplateID="11233" StrengthLevel="0" AttackCompose="0" DefendCompose="0" LuckCompose="0" AgilityCompose="0" IsBind="true" ValidDate="0" Count="1" />
<Item ID="2" TemplateID="200216" StrengthLevel="0" AttackCompose="0" DefendCompose="0" LuckCompose="0" AgilityCompose="0" IsBind="true" ValidDate="0" Count="1" />
<Item ID="3" TemplateID="11408" StrengthLevel="0" AttackCompose="0" DefendCompose="0" LuckCompose="0" AgilityCompose="0" IsBind="true" ValidDate="0" Count="2" />
</Items>
这是我在 c# 中创建它的代码中最重要的部分:
Dictionary<int, Dictionary<int, DailyLeagueAwardList>> dictionary1 = new Dictionary<int, Dictionary<int, DailyLeagueAwardList>>();
DailyLeagueAwardList[] allDailyLeagueAwardList = produceBussiness.GetAllDailyLeagueAwardList();
DailyLeagueAwardItems[] allDailyLeagueAwardItems = produceBussiness.GetAllDailyLeagueAwardItems();
foreach (DailyLeagueAwardList DailyLeagueAwardList in allDailyLeagueAwardList)
{
DailyLeagueAwardList.AwardLists = new List<DailyLeagueAwardItems>();
if (!dictionary1.ContainsKey(DailyLeagueAwardList.Class))
dictionary1.Add(DailyLeagueAwardList.Class, new Dictionary<int, DailyLeagueAwardList>()
{
{
DailyLeagueAwardList.Grade,
DailyLeagueAwardList
}
});
else if (!dictionary1[DailyLeagueAwardList.Class].ContainsKey(DailyLeagueAwardList.Grade))
dictionary1[DailyLeagueAwardList.Class].Add(DailyLeagueAwardList.Grade, DailyLeagueAwardList);
}
foreach (DailyLeagueAwardItems DailyLeagueAwardItems in allDailyLeagueAwardItems)
{
if (dictionary1.ContainsKey(DailyLeagueAwardItems.ID) && dictionary1[DailyLeagueAwardItems.ID].ContainsKey(DailyLeagueAwardItems.Class))
dictionary1[DailyLeagueAwardItems.ID][DailyLeagueAwardItems.Class].AwardLists.Add(DailyLeagueAwardItems);
}
XElement xelement1 = (XElement) null;
foreach (Dictionary<int, DailyLeagueAwardList> dictionary2 in dictionary1.Values)
{
foreach (DailyLeagueAwardList DailyLeagueAwardList in dictionary2.Values)
{
if (xelement1 == null)
xelement1 = new XElement((XName) "Items", (object) new XAttribute((XName) "Class",
(object) DailyLeagueAwardList.Class), (object)new XAttribute((XName)"Grade",
(object)DailyLeagueAwardList.Grade),
(object)new XAttribute((XName)"Score",
(object)DailyLeagueAwardList.Score),
(object)new XAttribute((XName)"Rank",
(object)DailyLeagueAwardList.Rank));
foreach (DailyLeagueAwardItems awardList in DailyLeagueAwardList.AwardLists)
{
XElement xelement3 = new XElement((XName) "Item", new object[10]
{
(object) new XAttribute((XName) "ID", (object) awardList.ID),
(object) new XAttribute((XName) "TemplateID", (object) awardList.TemplateID),
(object) new XAttribute((XName) "StrengthLevel", (object) awardList.StrengthLevel),
(object) new XAttribute((XName) "AttackCompose", (object) awardList.AttackCompose),
(object) new XAttribute((XName) "DefendCompose", (object) awardList.DefendCompose),
(object) new XAttribute((XName) "LuckCompose", (object) awardList.LuckCompose),
(object) new XAttribute((XName) "AgilityCompose", (object) awardList.AgilityCompose),
(object) new XAttribute((XName) "IsBind", (object) awardList.IsBind),
(object) new XAttribute((XName) "ValidDate", (object) awardList.ValidDate),
(object) new XAttribute((XName) "Count", (object) awardList.Count)
});
xelement1.Add((object) xelement3);
}
//xelement1.Add((object) xelement3);
}
result.Add((object) xelement1);
xelement1 = (XElement) null;
}
我在 C# 上使用 XElement,我认为问题出在 ↓
foreach (DailyLeagueAwardItems DailyLeagueAwardItems in allDailyLeagueAwardItems)
{
if (dictionary1.ContainsKey(DailyLeagueAwardItems.ID) && dictionary1[DailyLeagueAwardItems.ID].ContainsKey(DailyLeagueAwardItems.Class))
dictionary1[DailyLeagueAwardItems.ID][DailyLeagueAwardItems.Class].AwardLists.Add(DailyLeagueAwardItems);
}
上面我认为是错误,我该如何解决?
感谢和抱歉英语不好!
*编辑 只返回这个:
<Items Class="1" Grade="20" Score="150" Rank="0" />
<Items Class="2" Grade="20" Score="200" Rank="0" />
<Items Class="3" Grade="20" Score="250" Rank="0" />
<Items Class="4" Grade="20" Score="300" Rank="0" />
<Items Class="5" Grade="20" Score="400" Rank="0" />
<Items Class="6" Grade="20" Score="550" Rank="0" />
<Items Class="7" Grade="20" Score="700" Rank="0" />
<Items Class="8" Grade="20" Score="850" Rank="0" />
<Items Class="9" Grade="20" Score="900" Rank="0" />
<Items Class="10" Grade="30" Score="150" Rank="0" />
<Items Class="11" Grade="30" Score="200" Rank="0" />
<Items Class="12" Grade="30" Score="250" Rank="0" />
<Items Class="13" Grade="30" Score="300" Rank="0" />
<Items Class="14" Grade="30" Score="400" Rank="0" />
<Items Class="15" Grade="30" Score="550" Rank="0" />
<Items Class="16" Grade="30" Score="700" Rank="0" />
<Items Class="17" Grade="30" Score="850" Rank="0" />
<Items Class="18" Grade="30" Score="900" Rank="0" />
<Items Class="19" Grade="40" Score="150" Rank="0" />
<Items Class="20" Grade="40" Score="200" Rank="0" />
<Items Class="21" Grade="40" Score="250" Rank="0" />
<Items Class="22" Grade="40" Score="300" Rank="0" />
<Items Class="23" Grade="40" Score="400" Rank="0" />
<Items Class="24" Grade="40" Score="550" Rank="0" />
<Items Class="25" Grade="40" Score="700" Rank="0" />
<Items Class="26" Grade="40" Score="850" Rank="0" />
<Items Class="27" Grade="40" Score="900" Rank="0" />
<Items Class="28" Grade="100" Score="0" Rank="1" />
<Items Class="29" Grade="100" Score="0" Rank="2" />
<Items Class="30" Grade="100" Score="0" Rank="3" />
【问题讨论】:
-
但是你有什么错误?
-
还有,你的sql server怎么样,输入是什么?这是
awardList是节点Items吗? -
我用返回的结果刷新帖子,我想要
并且在 -
它也对我们没有帮助。意思是没有错误,只是
<Item>无法导入? -
是 Jacky 当我在 5 个变量上方的代码中将 ID 更改为 Class 或 Class 为 ID 时,我尝试更改多个组合一次有效,但是只有元素