我有以下xml
<?xml version="1.0"?>
<response status="200">
<ns3:output xmlns="http://xmlns.oracle.com/apps/fnd/wf/worklist/service/rt/artifacts/notificationdetails/"
xmlns:ns2="http://xmlns.oracle.com/apps/fnd/wf/worklist/service/rt/artifacts/worklistmgmt/"
xmlns:ns3="http://xmlns.oracle.com/apps/fnd/wf/worklist/service/rt/artifacts/worklist/">
<ns2:notifications count="140552">
<ns2:notification>
<ns2:NotificationId>4687807</ns2:NotificationId>
</ns2:notification>
</ns2:notifications>
</ns3:output>
</response>
我需要解析它并获取每行的NotificationId值。 我尝试使用以下代码获取列表,但它返回0。
notificationrows = xmlDoc.documentElement.selectNodes("/ns3:output/ns2:notifications");
任何人都可以告诉如何实现这个目标吗?
答案 0 :(得分:1)
根据评论,您没有告诉我们您正在使用哪种语言/解析器,但您可以使用local-name()
来实现命名空间无关的xpath,以避免使用NamespaceManager
或类似的,如下所示:
notificationrows = xmlDoc.documentElement.selectNodes("/response/*[local-name()='output']/*[local-name()='notifications']");
更新
请注意,您的根元素是response
(在全局命名空间中),因此您需要显式导航它,或使用//
查找匹配的后代。