Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';使用XMLReader无法访问特定的XML元素_Java_Xml_Parsing_Jaxb - Fatal编程技术网

Java Can';使用XMLReader无法访问特定的XML元素

Java Can';使用XMLReader无法访问特定的XML元素,java,xml,parsing,jaxb,Java,Xml,Parsing,Jaxb,我需要使用xmlreader解析下面的xml文件,然后使用JAXB解组这些部分 <parents> <moms> <mom> ... </mom> <mom> ... </mom> ... </moms> <dads> <dad> .. <

我需要使用xmlreader解析下面的xml文件,然后使用JAXB解组这些部分

<parents>
    <moms>
      <mom>
       ...
      </mom>
       <mom>
       ...
      </mom>
   ...
    </moms>
    <dads>
      <dad>
       ..
      </dad>
      ..
      ..
    </dads>
</parents>

给定以下XML

<parents>
  <moms>
    <mom>A</mom>
    <mom>B</mom>
  </moms>
  <dads>
    <dad>C</dad>
  </dads>
</parents>
印刷品C


我想你设法跳过了父亲的元素。试着简化你的逻辑。在我看来,所有这些要求和nextTag业务似乎都是错误的。还有,虽然我不确定,但是你while中的条件语句似乎很愚蠢。改为使用xmlStreamReader.hasNext并在完成后跳出循环。

您可以提供一个代码示例吗?您的处理程序/解析程序代码是什么?@KirillLebedev-什么是处理程序/解析程序?
<parents>
  <moms>
    <mom>A</mom>
    <mom>B</mom>
  </moms>
  <dads>
    <dad>C</dad>
  </dads>
</parents>
InputStream is = new FileInputStream("...");
XMLInputFactory xif = XMLInputFactory.newFactory();
XMLStreamReader xsr = xif.createXMLStreamReader(is);
while (xsr.hasNext()) {
  if (xsr.next() == XMLStreamConstants.START_ELEMENT
      && xsr.getLocalName().equals("dad")) {

    if (xsr.next() == XMLStreamConstants.CHARACTERS)
      System.out.println(xsr.getText());
  }
}