<PublicRecords>
      <USBankruptcies>
         <USBanktruptcy>...<USBankruptcy>
         <CourtId>...</CourtId>
         <USBanktruptcy>...<USBankruptcy>
         <CourtId>...</CourtId>
      </USBankruptcies>
      <USTaxLiens>
         <USTaxLien>...<USTaxLien>
         <CourtId>...</CourtId>
         <USTaxLien>...<USTaxLien>
         <CourtId>...</CourtId>
      </USTaxLiens>
      <USLegalItems>
         <USLegalItem><USLegalItem>
         <CourtId></CourtId>
          <USLegalItem><USLegalItem>
         <CourtId></CourtId>
      </USLegalItems>
  </PubicRecords>


我使用doc和xpath对象的组合来提取属性和节点内容。

    NodeList bp = doc.getElementsByTagName("USBankruptcy");
    NodeList nl = doc.getElementsByTagName("CourtId");
    long itrBP;
    for (itrBP = 0; itrBP < bp.getLength(); itrBP++ )
    {

        Element docElement = (Element) bp.item(itrBP);
        Element courtElement = (Element) nl.item(itrBP);



        NodeList df = docElement.getElementsByTagName("DateFiled");
        if(df.getLength() > 0)
        {
            dateFiled = nullIfBlank(((Element)df.item(0)).getFirstChild().getTextContent());
            dateFiled = df.format(dateFiled);
        }


但是,当我说获取标记名CourtID的元素时,它将获取所有的CourtID,而不仅仅是获得USBankruptcy的那些。

有什么办法可以指定父母吗?

我尝试了NodeList nl = doc.getElementsByTagName(“ USBankruptcies / CourtId”);

它在运行时给了我一个dom错误。

最佳答案

而不是在Document上调用getElementsByTagName("CourtId")方法,而是在子元素(在您的情况下为<USBankruptcies>元素)上调用它。

NodeList bankruptcyNodes = doc.getElementsByTagName("USBankruptcies");
Element bankruptcyElement = (Element) bankruptcyNodes.item(0);

NodeList bankruptcyCourtNodes = bankruptcyElement.getElementsByTagName("CourtId");
// etc...

10-04 23:02