解析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);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章