首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XElement迭代将不起作用

XElement迭代将不起作用
EN

Stack Overflow用户
提问于 2012-09-10 19:57:48
回答 2查看 254关注 0票数 0

我正在尝试遍历这个XML:

代码语言:javascript
复制
<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>

我在迭代中使用的代码是:

代码语言:javascript
复制
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");

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-10 20:13:45

代码语言:javascript
复制
IEnumerable<XElement> diaryelements = diary.Descendants("diaryelement");

此更改将获取"diaryelement“的所有后代,之后您可以逐个解析

票数 2
EN

Stack Overflow用户

发布于 2012-09-10 20:07:42

尝试使用XDocument.Parse而不是XElement.Parse。另外,请考虑调整此行上的xml元素路径

代码语言:javascript
复制
Debug.WriteLine((string)diaryelement.Element("diaryelement").Element("diaryshortitem").Element("description").Element("data").Value);

因为它是不正确的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12351205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档