天使半只翼

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

今天操作用linq操作XML时遇到带有冒号的节点一直获取不成功,

<a1:root xmlns:a1="http://ww.xxx.com/">
    <a1:book>aaaa</a1:book>
</a1:root>

正确的读取的方法是

XDocument x = new XDocument();
                x = XDocument.Load(@"f:\a.xml");
                XNamespace n = @"http://www.xxx.com/";
                var t = from a in x.Descendants(n + "book")
                            select a

这样就可以获取正确,

还有就是linq 中 group by 的使用

XDocument x = new XDocument();
                x = XDocument.Load(@"f:\a.xml");
                XNamespace n = @"http://www.xxx.com/";
                var t = from a in x.Descendants(n + "book")
                            group a by a.Element(n+"book").Value into b
                            select new {b.Key,b.Count()}

基本的思路就是这样 group 集合 by 字段 into 新集体

 

posted on 2013-05-07 00:31  天使半只翼  阅读(1390)  评论(0编辑  收藏  举报