怎么查询xml中相同节点值!

wulg10 2010-07-14 03:03:33

<Info>
<ID>109001</ID>
<Field>aa</Field>
</Info>
<Info>
<ID>109001</ID>
<Field>bbb</Field>
</Info>
<Info>
<ID>109002</ID>
<Field>ccc</Field>
</Info>
<Info>
<ID>109003</ID>
<Field>ccc</Field>
</Info>


我想查询ID,其结果是:
109001
109002
109003
如果重复的ID就取一个就行

用Linq to xml 怎么查?或是用其他方法怎么查呢?
...全文
233 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wulg10 2010-07-14
  • 打赏
  • 举报
回复
已经完成!
1、查询xml数据存到IList<T>里面。
IList<T> xcList =new List<T>
2、用Linq查询
var query = (from ID xcList select ID.ID).Distinct() ;
这样查询就能过滤重复数据了!
myhope88 2010-07-14
  • 打赏
  • 举报
回复
很多种方法都可以实现吧,linq,xpath,读入dataset在里面判断等等
wulg10 2010-07-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 honkerhero 的回复:]

Distinct方法是结果去重的吧

Group By方法应该也可以
[/Quote]

groub by 的方法怎么实现
wulg10 2010-07-14
  • 打赏
  • 举报
回复
都不行!
我也得这个Linq没有帮我把重复的ID的值去掉!
var query = (from ID in xelem.Descendants("Info") select ID.Element("ID")).Distinct() ;
hongdi 2010-07-14
  • 打赏
  • 举报
回复
使用Xpath语法,参考下面链接
http://www.w3school.com.cn/xpath/xpath_syntax.asp
wuyq11 2010-07-14
  • 打赏
  • 举报
回复

XmlDocument doc = new XmlDocument();
doc.LoadXml("");
foreach (XmlNode node in doc.GetElementsByTagName("id"))
Console.WriteLine(node.InnerXml);
q107770540 2010-07-14
  • 打赏
  • 举报
回复


string xml = @"<?xml version=""1.0"" encoding=""utf-8"" ?><root><Info>
<ID>109001</ID>
<Field>aa</Field>
</Info>
<Info>
<ID>109001</ID>
<Field>bbb</Field>
</Info>
<Info>
<ID>109002</ID>
<Field>ccc</Field>
</Info>
<Info>
<ID>109003</ID>
<Field>ccc</Field>
</Info></root>";
var obj = ((XDocument.Parse(xml).Descendants("Info")).SelectMany(s => s.Elements("ID"))).Distinct();


string t = "";
foreach (var s in obj)
{
t += s + "<br />";
}
Response.Write(t);
claymore1114 2010-07-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 oonukeoo 的回复:]

C# code

List<string> result= new List<string>();
XDocument doc=XDocument.Load("xml");
var query = from SID in doc.Descendants("ID") select SID.Value;
foreach (var item in query)
{
result.Add(item)……
[/Quote]
bancxc 2010-07-14
  • 打赏
  • 举报
回复
Dom.SelectNodes("//info/id");
honkerhero 2010-07-14
  • 打赏
  • 举报
回复
Distinct方法是结果去重的吧

Group By方法应该也可以
萨拉嘿 2010-07-14
  • 打赏
  • 举报
回复

List<string> result= new List<string>();
XDocument doc=XDocument.Load("xml");
var query = from SID in doc.Descendants("ID") select SID.Value;
foreach (var item in query)
{
result.Add(item);
}

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧