今天操作用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 新集体