我正在尝试遍历这个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");但是这个方法似乎跳过了迭代,我不知道为什么。
发布于 2012-09-10 20:13:45
IEnumerable<XElement> diaryelements = diary.Descendants("diaryelement");此更改将获取"diaryelement“的所有后代,之后您可以逐个解析
发布于 2012-09-10 20:07:42
尝试使用XDocument.Parse而不是XElement.Parse。另外,请考虑调整此行上的xml元素路径
Debug.WriteLine((string)diaryelement.Element("diaryelement").Element("diaryshortitem").Element("description").Element("data").Value);因为它是不正确的。
https://stackoverflow.com/questions/12351205
复制相似问题