1.xml格式如下:
<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:dc="http://pur.org/dc/"
xmlns:slash="http://purls.rss/q">
<item>
<title>title-1</title>
<dc:creator> steve eichert</dc:creator>
<slash:creator> slash-1</slash:creator>
</item>
<item>
<title>title-1</title>
<dc:creator> steve eichert</dc:creator>
<slash:creator> slash-1</slash:creator>
</item>
</rss>
2.Dom中这样操作
XmlDocument doc =new XmlDocument();
doc.Load("rss.xml");
XmlNamespaceManager ns=new XmlNamespaceManager(doc.NameTable);
ns.AddNamespace("dc","http://pur.org/dc/");
ns.AddNamespace("slash","http://purls.rss/q");
XmlNodeList commentNodes =doc.SelectNodes("slash:creator",ns);
foreach(XmlNode node in commentNodes ){
Console.WriteLine(node.InnerText);
}
3.在lin to xml 中这样操作
XElement rss =XElement.Load("rss.xml");
XNamespace dc ="http://pur.org/dc/";
XNamespace slash="http://purls.rss/q";
//使用完全 展开的XNamespace 和XName 查询
IEnumerable<XElement> comments =rss.Descendants(slash+"creator");
foreach( XElement comment in comments ){
Console.WriteLine((string)comment);
}
//查询本地的名称
IEnumerable<XElement> titles =rss.Descendants("title");
foreach(XElement title in titles){
Console.WriteLine((string)title);
}
使用ling to xml 处理起来感觉很直观了操作带有命名空间的和命名前缀的xml变的简单,所有的信息统一成一个概念,并封装在同一个xName 中