读取XML文件元素及插入值

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>");
                }
            }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值