有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java中XML节点的计数

如何从这个XML响应中获得Java中的标记数?我尝试使用NodeList list = doc.getElementsByTagName("item"); System.out.println(list.getLength());,但它没有给出所需的计数,即2

<?xml version="1.0" encoding="UTF-8"?>
    <ns6:ReadPersonReturn xmlns:ns2="urn:co-base.informatica.mdm" xmlns:ns1="urn:cs-base.informatica.mdm" xmlns:ns4="urn:co-meta.informatica.mdm" xmlns:ns3="urn:co-ors.informatica.mdm" xmlns:ns5="urn:task-base.informatica.mdm" xmlns:ns6="urn:cs-ors.informatica.mdm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns6:ReadPersonReturn">
       <ns6:object xmlns:ns0="urn:cs-rest.informatica.mdm">
          <ns3:Person label="Person">
             <ns2:rowidObject>28</ns2:rowidObject>
             <ns3:firstNM>John</ns3:firstNM>
             <ns3:lastNM>Cook</ns3:lastNM>
             <ns3:Phone firstRecord="1" pageSize="10" searchToken="SVR1.28WC2">
                <ns3:item label="Phone">
                   <ns2:rowidObject>1</ns2:rowidObject>
                   <ns3:phoneNumber>123456789</ns3:phoneNumber>
                </ns3:item>
                <ns3:item label="Phone">
                   <ns2:rowidObject>2</ns2:rowidObject>
                   <ns3:phoneNumber>11223344</ns3:phoneNumber>
                </ns3:item>
             </ns3:Phone>
          </ns3:Person>
          <ns3:changeSummary logging="false" xmlns:sdo="commonj.sdo"/>
       </ns6:object>
    </ns6:ReadPersonReturn>

共 (1) 个答案

  1. # 1 楼答案

    您的文档有名称空间。您需要使用不同的API调用:

    NodeList list = doc.getElementsByTagNameNS("urn:co-ors.informatica.mdm", "item");
    

    如果不关心名称空间,并且确定<item...>不会出现在其他名称空间中,则可以使用"*"