Java XPath/getChildElements都未能在XOM中获取XML子元素

Java XPath/getChildElements都未能在XOM中获取XML子元素,java,xml,scala,xom,Java,Xml,Scala,Xom,我必须解析一个OAI-PMH XML文件,如下所示。我想迭代ListRecord中的所有节点 <?xml version="1.0" encoding="UTF-8"?> <OAI-PMH xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd" xmlns="http://www.openarchives.org/OAI/2

我必须解析一个OAI-PMH XML文件,如下所示。我想迭代ListRecord中的所有
节点

<?xml version="1.0" encoding="UTF-8"?>
<OAI-PMH xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd" xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <responseDate>2010-12-30T10:46:39.654+08:00</responseDate>
  <request verb="ListRecords" metadataPrefix="oai_dc">http://172.16.1.118/ahd/oai2.do</request>
  <ListRecords>
    <record>
      <header>
        <identifier>9010402101001001</identifier>
      </header>
      <metadata>
        <oai_dc:dc xsi:schemaLocationfiltered="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/">
          <dc:identifier>9010402101001001</dc:identifier>
        </oai_dc:dc>
      </metadata>
    </record>
    <resumptionToken>1509/1509</resumptionToken>
  </ListRecords>
</OAI-PMH>

我不知道为什么不能在XML中获取
ListRecords
record
。我错过什么了吗

我发现这是

下面的代码可以工作,我需要将标记名绑定到命名空间

scala> val context = new XPathContext("xsi", "http://www.openarchives.org/OAI/2.0/")
context: nu.xom.XPathContext = nu.xom.XPathContext@19a3f495

scala> document.query("//xsi:record", context).size
res6: Int = 1

我敢打赌这是一个
xmlns
问题——您是否尝试过使用domain参数?尝试:

 document.getRootElement
         .getChildElements("ListRecords", 
                           "http://www.openarchives.org/OAI/2.0/").size
基本上,许多语言在XML对象上给定默认的ns时,都需要该名称空间来查找该节点——即使它在输出的DOM本身中没有前缀

(这也可以使用XPathContext对象完成,如Brian Hsu所示)

 document.getRootElement
         .getChildElements("ListRecords", 
                           "http://www.openarchives.org/OAI/2.0/").size