当前位置:  开发笔记 > 编程语言 > 正文

使用LINQ干净地处理嵌套XML的更好方法

如何解决《使用LINQ干净地处理嵌套XML的更好方法》经验,为你挑选了2个好方法。

我正在使用由嵌套级别获得报酬的人设计的XML.不同的xml文件总是如下所示:

   
   
       
          
               
                   

使用LINQ很容易得到我想要的东西:(不完全是,但你明白了)

from x in car.Descendants("x")
from y in x.Descendants("y")
from z in y.Descendants("z")
select z.WhatIWant();

我问是否有更好的方法来做到这一点?用Linq导航DOM的一些方法?



1> AnthonyWJone..:

如果你确定你想要的只是TheImporantData元素中的Car元素而TheImportantData不是用作标记名,那么: -

来自x中的car.Descendants("TheImportantData")选择x.WhatIWant();

会做.



2> Robert Rossn..:

考虑XNode扩展方法XPathSelectElements.在你的情况下:

var foo = from x in car.XPathSelectElements("Color/Paint/AnotherUselessTag/SomeSemanticBs/TheImportantData")
select x.WhatIWant();

Descendants方法不同,以这种方式使用XPath专门导航到您需要的元素 - 例如,它只会查看Color元素下的Car元素,而只会查看Paint元素下的Color元素,依此类推.(如果需要,可以Descendants使用XPath模式模拟方法的区别性较小的行为.//TheImportantData.)

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有