您的位置:首页 > 其它

操作带命名空间xml

2011-11-07 23:04 337 查看
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 中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: