解析xml文件 selectSingleNode取不到节点

在解析xml文件的时候按照原来的方法使用selectSingleNode取不到节点。xml代码如下:

<?xml version="1.0" encoding="UTF-8"?>

<CwapMessage xmlns=" http://wap.homeinns.com/cwap ">
< version > 1.0 </ version >
< TxtMsgMessage >
     < DateTag > 2012-5-30 </ DateTag >
       < Table >
       < rate > 0.75 </ rate >
       < DY > 2012-5-30 0:00:00 </ DY >
       < hotelcd > 057104 </ hotelcd >
       < strmtypecd > B1 </ strmtypecd >
       </ Table >
</ TxtMsgMessage >
</ CwapMessage >

解析代码:

System.Xml.XmlNode nodes = doc.SelectSingleNode("/CwapMessage/TxtMsgMessage/Table/rate");

doc为获取到上边xml的xmlDocument对象,取到的nodes总为null,经过在网上搜索,发现,关键是因为 这段xml 加的有命名空间,即:xmlns="http://wap.homeinns.com/cwap"

所以,在解析的时候也需要把命名空间加上,才能解析到。做法如下:

System.Xml.XmlNamespaceManager nsmgr = new System.Xml.XmlNamespaceManager(doc.NameTable);
            nsmgr.AddNamespace("ns", "http://wap.homeinns.com/cwap");
            System.Xml.XmlNode root = doc.SelectSingleNode("ns:CwapMessage/ns:TxtMsgMessage/ns:Table/ns:rate", nsmgr);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值