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」のすべての子孫が取得されます。その後、1つずつ解析できます。

于 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 に答える