XML节点存在namespace(xmlns)的时候xpath不能正常工作
2006-08-18 21:17
393 查看
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>
如果按往常查询的话:
XmlDocument doc = new XmlDocument();
doc.LoadXml(strXMLData);
XmlNode root = doc.SelectSingleNode(".//RECORDS");
root是null。
解决办法:
1 XmlDocument doc = new XmlDocument();
2 doc.LoadXml(strXMLData);
3 XmlNamespaceManager manager = new XmlNamespaceManager(doc.NameTable);
4 manager.AddNamespace("MyAPI", "MyAPI");
5 XmlNode root = doc.SelectSingleNode("//MyAPI:RECORDS", manager);
加上XmlNamespaceMananger就可以正常了。
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>
如果按往常查询的话:
XmlDocument doc = new XmlDocument();
doc.LoadXml(strXMLData);
XmlNode root = doc.SelectSingleNode(".//RECORDS");
root是null。
解决办法:
1 XmlDocument doc = new XmlDocument();
2 doc.LoadXml(strXMLData);
3 XmlNamespaceManager manager = new XmlNamespaceManager(doc.NameTable);
4 manager.AddNamespace("MyAPI", "MyAPI");
5 XmlNode root = doc.SelectSingleNode("//MyAPI:RECORDS", manager);
加上XmlNamespaceMananger就可以正常了。
相关文章推荐
- VC MFC 中 Class Wizard 不能正常工作的时候几种处理方法
- dom4j 使用xpath 解析 persistence.xml 出现xmlns后不能解析问题解决
- xml不能里面的上下间隔问题 ,如果存在需要隐藏的项的时候 ,最好是在隐藏项加layout_marginBottom,而不用在下面那项加top
- .net中使用XPath语言在xml中判断是否存在节点值的方法
- oracle RAC srvctl命令关闭节点实例的时候 不能正常执行
- php使用DOMDocument的时候如何判断xml中某节点是否存在
- window8 下PEiD不能正常工作
- 当使用 SelfHost 的 OWIN 承载 SignalR 时,重启 OWIN 后,SignalR 不能正常工作
- 使用jdom的XPath来快速定位xml节点
- RMS 在 office 2003 中不能正常工作 Critical RMS issue with Office 2003 打附件中提供的补丁。http://download.csdn.net/source/1899262
- 让Reflector的反编译不能正常工作
- C# xml 读取 编辑保存 新增保存 查找是否存在特定节点
- Unexpected namespace prefix "xmlns" found for tag LinearLayout——android开发之xml布局文件
- XML检测节点是否存在
- node-readability不能正常工作
- 解决创建带有NameSpace的XML文件出现空白xmlns的问题
- firefox ie chrome 设置单元格宽度 td width 有bug,不能正常工作。以下方式可以解决
- angularJS 路由不能正常工作 URL中出现#!
- zookeeper链接数导致kafka storm不能正常工作
- 判断xml指定节点是否存在