我正在尝试浏览此XML:
<result>
<diaryelement>
<diary_uid>86248040</diary_uid>
<diary_date>1347274789</diary_date>
<diary_type>0</diary_type>
<diaryshortitem>
<itemid>419</itemid>
<data>...</data>
<description>...</description>
</diaryshortitem>
</diaryelement>
</result>
我用于迭代的代码是:
XElement diary = XElement.Parse(e.Result);
IEnumerable<XElement> diaryelements = diary.Descendants("result");
Debug.WriteLine("No error");
foreach (XElement diaryelement in diaryelements)
{
Debug.WriteLine(diaryelement.Value);
Debug.WriteLine((string)diaryelement.Element("diaryelement").Element("diaryshortitem").Element("description").Element("data").Value);
}
Debug.WriteLine("Loop ended");
但该方法似乎跳过了迭代,我不知道为什么。
答案 0 :(得分:2)
IEnumerable<XElement> diaryelements = diary.Descendants("diaryelement");
此更改将获得“diaryelement”的所有后代,之后您可以逐个解析
答案 1 :(得分:0)
而不是XElement.Parse
尝试使用XDocument.Parse
。另外,请考虑调整xml元素路径
在这一行
Debug.WriteLine((string)diaryelement.Element("diaryelement").Element("diaryshortitem").Element("description").Element("data").Value);
因为它不正确。