【发布时间】:2011-09-19 17:55:22
【问题描述】:
我正在尝试从 XMLDocument 中获取 Distinct 并加载到下拉列表中。
var topicNodes = xdoc.SelectNodes("//content:Topic", nsmgr).Cast<XmlNode>().Select(c => c.InnerText).Distinct();
这是我的完整代码:
XmlDocument xdoc = new XmlDocument();//xml doc used for xml parsing
xdoc.Load(url);
XmlNamespaceManager nsmgr = new XmlNamespaceManager(xdoc.NameTable);
nsmgr.AddNamespace("content", "sitename.xsd");
var topicNodes = xdoc.SelectNodes("//content:Topic", nsmgr).Cast<XmlNode>().Select(c => c.InnerText).Distinct();
foreach (XmlNode node in topicNodes)
{
string topic = node.Attributes["TopicName"].Value;
//dropdownlist.items.add(new listitem(topic);
this.dropdownlist.Items.Add(new ListItem(topic);
}
dropdownlist.databind();
【问题讨论】:
-
您要解决的具体问题是什么,这不会返回一组不同的结果吗?
-
你为什么不用
XElement? -
您的代码示例包含语法错误。
-
使用 linq to xml 和使用 linq 可以轻松获取不同的值。
-
检查此代码是否静态 IEnumerable
GetOwners(XDocument doc, string cat) { return from item in doc.Descendants("item") where item.Attribute("cat").Value = = cat select (int)item.Attribute("owner")).Distinct(); }
标签: c# .net xml xmldocument