xml文件:
<?xml version="1.0" encoding="utf-8" ?>
<bookstore xmlns="http://www.abcd.com">
<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="eng">Learning XML</title>
<price>39.98</price>
</book>
<bookstore>
<title lang="eng">Learning C#</title>
<price>55.23</price>
</bookstore>
<item name="1">第一个item</item>
<item name="2">
<item name="1">这个结点(1)</item>
<item name="2">这个结点(2)</item>
<book>
<title lang="cn">Learning C</title>
<price>60.95</price>
</book>
</item>
</bookstore>
cs操作代码:
XmlDocument xdoc = new XmlDocument();
xdoc.Load(Server.MapPath("books.xml"));
XmlNamespaceManager nm = new XmlNamespaceManager(xdoc.NameTable);
nm.AddNamespace("NM", "http://www.abcd.com");
XmlNodeList xnl = xdoc.SelectNodes("/NM:bookstore/NM:book", nm);
string nodeTempStr = "";
foreach (XmlNode node in xnl)
{
nodeTempStr = node.InnerText;
nodeTempStr = node.SelectSingleNode("NM:title", nm).InnerText;
nodeTempStr = node.ChildNodes[0].InnerText;
}
XmlNodeList xnodel = xdoc.SelectNodes("/NM:bookstore/NM:item[@name='2']/NM:item", nm);
XmlNodeList xnodel4 = xdoc.SelectNodes("/NM:bookstore/NM:item[.//*[@name='2']]/NM:item", nm); // 其中.//*表示当前节点下的所有元素
XmlNode xnode = xdoc.SelectSingleNode("/NM:bookstore/NM:item[@name='2']/NM:item[@name='2']", nm);
XmlNodeList xnode1 = xdoc.SelectNodes("/NM:bookstore/NM:book[NM:price>31]", nm); //选取所有 bookstore 元素的 book 元素,且其中的 price 元素的值须大于 31。
XmlNodeList xnode2 = xdoc.SelectNodes("/NM:bookstore/NM:book[NM:price>31]/NM:title", nm); //选取所有 bookstore 元素中的 book 元素的 title 元素,且其中的 price 元素的值须大于 31
XmlNodeList xnode3 = xdoc.SelectNodes("/NM:bookstore/NM:item[@name]", nm); //选取所有拥有名为 name 的属性的 item 元素
string attValue = xnode.Attributes["name"].Value; //先获取节点,然后再取得该节点中的属性值
string nodeText = xnode.ChildNodes[0].InnerText;