xml文件如下:

 1 <MODULE>
 2 <MESSAGE Type="Reply" Reference="Ref3">
 3 <PARAMETER Name="PublicReply" Type="XMLString">
 4 <MyAPI_RESULT xmlns="MyAPI">
 5 <ANSWER ID="801">
 6 <RECORDS>
 7 <ROW ForID="123456" data1="1" data2="2" data3="3"/>
 8 </RECORDS>
 9 </ANSWER>
10 </MyAPI_RESULT>
11 </PARAMETER>
12 </MESSAGE>
13 </MODULE>

如果按往常查询的话:
XML节点存在namespace(xmlns)的时候xpath不能正常工作 XmlDocument doc = new XmlDocument();
XML节点存在namespace(xmlns)的时候xpath不能正常工作doc.LoadXml(strXMLData);
XML节点存在namespace(xmlns)的时候xpath不能正常工作XmlNode root 
= doc.SelectSingleNode(".//RECORDS");

root是null。

解决办法:

1XML节点存在namespace(xmlns)的时候xpath不能正常工作 XmlDocument doc = new XmlDocument();
2XML节点存在namespace(xmlns)的时候xpath不能正常工作 doc.LoadXml(strXMLData);
3XML节点存在namespace(xmlns)的时候xpath不能正常工作 XmlNamespaceManager manager = new XmlNamespaceManager(doc.NameTable);
4XML节点存在namespace(xmlns)的时候xpath不能正常工作 manager.AddNamespace("MyAPI""MyAPI");
5XML节点存在namespace(xmlns)的时候xpath不能正常工作 XmlNode root = doc.SelectSingleNode("//MyAPI:RECORDS", manager);

加上XmlNamespaceMananger就可以正常了。

相关文章: