1.直接读取xml文件中的某个元素。前提是知道这个元素是否存在,及其架构信息。
//声明XPathDocument,这个类只能被读取。如果需要写入应该声明XmlDocument。
XPathDocument doc = new XPathDocument("Book.xml");
//建立一个目录,供iterator使用。
//XPathNavigator nav = doc.CreateNavigator();//"/books/book[@genre='']")
XPathNavigator nav = ((IXPathNavigable)doc).CreateNavigator();
//获取book元素中,它的属性值是novel的book元素。在xml文件中,内部要使用双引号,就用单引号代替。
//
XPathNodeIterator iter = nav.Select("/books/book[@genre='novel']");
while (iter.MoveNext())
{
//选择被选择元素的所有子节点。
XPathNodeIterator newIter = iter.Current.SelectDescendants(XPathNodeType.Element, false);
while (newIter.MoveNext())
{
string Element = newIter.Current.Name;
string Value = newIter.Current.Value;
}
}
2.计算书本总价格。
string TotalCost = nav.Evaluate("sum(/books/book/price)").ToString();
3.在文档的某地方插入新值。
//声明XmlDocument,这个类只能被读取。如果需要写入应该声明XmlDocument。
XmlDocument doc = new XmlDocument();
doc.Load("Book.xml");
//建立一个目录,供iterator使用。
//XPathNavigator nav = doc.CreateNavigator();//"/books/book[@genre='']")
XPathNavigator nav = ((IXPathNavigable)doc).CreateNavigator();
//获取book元素中,它的属性值是novel的book元素。在xml文件中,内部要使用双引号,就用单引号代替。
//
XPathNodeIterator iter = nav.Select("/books/book/price");
if (nav.CanEdit)
{
while (iter.MoveNext())
{
//添加书本的折扣.
//InsertAfter支持四种重载方法。插入方法的参数包括xmlreader,XPathNavigator,String.
iter.Current.InsertAfter("<disc>5</disc>");
}
}