xml读取中需要注意的地方

并不是所有的XmlNode.Value都是有定义的,
我们初学者可能常犯的错误:
<root>
   aaa
</root>
我们会企图用下面的代码访问值:aaa
   XmlDocument doc = new XmlDocument();
   doc.Load("test.xml");
   XmlElement root = doc.DocumentElement;
   Console.WriteLine(root.Value);
但实际上,root还有一个childNode,即字符串“aaa”,他的类型是:Text
我们必须这样访问它:
Console.WriteLine(root.ChildNodes[0].Value);
但是我发现如果用XPathNavigator来访问xml文件就不同,如下面的例子:
   XPathDocument doc = new XPathDocument("test.xml");
   XPathNavigator nav = doc.CreateNavigator();
   string strXPath = "/root";
   XPathExpression expr = nav.Compile(strXPath);
   XPathNodeIterator iter = nav.Select(expr);
   iter.MoveNext();
   Console.WriteLine(nav.Value);
Navigator也只是定位到root节点,但它就可以直接访问到value值。
这可能是提供了区别于上面那种的访问方式吧。
至于内部Navigator是怎么实现的,待我去问问我们的鞠老大吧。

转载于:https://www.cnblogs.com/ipointer/archive/2005/07/26/200395.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值