//记得引用此命名空间:using System.Xml.Linq;
XDocument oXDoc = XDocument.Load(@"你的XML文件地址"); //如C:\test.xml
var qurey = from x in oXDoc.Descendants("resources")
select new
{
ConnetStringValue=x.Element("culture").Value
};
foreach(var t in query)
{
Console.WriteLine("culture: {0}", t);
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/q107770540/archive/2010/07/06/5716014.aspx
_Document.Load("123.xml");
XmlNamespaceManager _Manager = new XmlNamespaceManager(_Document.NameTable);
_Manager.AddNamespace("Namespace",_Document.ChildNodes[1].NamespaceURI); XmlNodeList _List = _Document.SelectNodes("Namespace:feed/Namespace:resourcesList", _Manager);
DataSet ds=new DataSet();
ds.readerXML(XMLPAHT);
listbox.datasource=ds.tables[0];
还要加上一句listbox项的邦定数据[resources],
这样就OK了。试一下吧.但不知道你是否是你想要的。
Xmlfile.Load(@"...");
XmlNamespaceManager NsMgr = new XmlNamespaceManager(Xmlfile.NameTable);
NsMgr.AddNamespace("ns", Xmlfile.DocumentElement.NamespaceURI);
XmlNodeList Nodelist = Xmlfile.SelectNodes("//ns:resources",NsMgr);
foreach (XmlNode node in Nodelist)
{
NsMgr.AddNamespace("ns", node.NamespaceURI);
XmlNode productid = node.SelectSingleNode("//ns:culture", NsMgr);
}
我一开始想采用的这样的做法,不过似乎因为在迭代的时候子结点的命名空间相同,无法实现.
请问有办法按这个思路解决么?
打开 报错
<feed xmlns="http://www.w3.org/2005/Atom">
<resourcesList>
<resources>
<culture>en</culture>
</resources>
<!-- included in file -->
<resources>
<culture>zh-cn</culture>
<url>http://www.microsoft.com/web/webpi/2.0/resources/WebProductList_zh-cn.xml</url>
</resources>
<resources>
<culture>zh-tw</culture>
<url>http://www.microsoft.com/web/webpi/2.0/resources/WebProductList_zh-tw.xml</url>
</resources>
</resourcesList>
</feed>
这儿少了个标记.
现在的问题是我在5楼中提到的,在带命名空间的xml中从子结点用selectsinglenode选择单个节点.谢谢