0

我正在尝试通过这个 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");

但是该方法似乎跳过了迭代,我不知道为什么。

4

2 回答 2

2
IEnumerable<XElement> diaryelements = diary.Descendants("diaryelement");

这个改动得到了“diaryelement”的所有后代,之后你就可以一一解析了

于 2012-09-10T12:13:45.307 回答
0

而不是XElement.Parse尝试使用XDocument.Parse. 另外,考虑在这一行调整 xml 元素路径

Debug.WriteLine((string)diaryelement.Element("diaryelement").Element("diaryshortitem").Element("description").Element("data").Value);

因为它不正确。

于 2012-09-10T12:07:41.533 回答