XML中处理带有命名空间的XPath查询

XML中处理带有命名空间的XPath查询

XML中使用了命名空间来区分结点,即如果XML结点中使用了非默认的命名空间则在使用XPath查询时必须指出其对应的命名空间,否则将找不到结点;
在查询XML结点时有两种方法来指定命名空间信息:1.通过XPath对像;2通过XPath字符串.
1.通过XPath对像来指定命名空间信息
            XmlNamespaceManager xnm = new XmlNamespaceManager(xmlDocument.NameTable);
            xnm.DefaultNamespace = "http://www.w3c.org/w2c";
            xmlDocument.SelectNodes(xPath, xnm);
2.另一种方式是直接在XPath的字符串表达式中直接指出其结点的名称空间
            string xPath=" /*[local-name()='OrderStatusResponseV10']/*[local-name()='OrderStatusResponse' and namespace-uri()='http://www.newegg.com/VXI/DataContract/OS/']/*[local-name()='ResponseDetail' and namespace-uri()='http://www.newegg.com/VXI/DataContract/OS/Response']/*[local-name()='PODetail' and namespace-uri()='http://www.newegg.com/VXI/DataContract/OS/Response']/*[local-name()='DataFrom' and namespace-uri()='http://www.newegg.com/VXI/DataContract/OS/Response']";

posted on 2008-06-26 18:48  关东阖  阅读(833)  评论(0编辑  收藏  举报