在Java中解析嵌套XML

时间:2017-04-19 00:54:39

标签: java xml parsing

以下是XML的外观:

<gzoltar>
  <Alaming>
    <suspect>
      <method>alive()</method>
      <line>15</line>
      <score>0.5872202195147035</score>
      <most>no</most>
    </suspect>
    <suspect>
      <method>size()</method>
      <line>127</line>
      <score>0.545544725589981</score>
      <most>no</most>
    </suspect>
  </Alaming>
  <Nephis>
    <suspect>
      <method>fifty()</method>
      <line>41</line>
      <score>0.4016632088371218</score>
      <most>no</most>
    </suspect>
  </Nephis>
<gzoltar>

我想要做的是阅读最里面的条目(可疑标签),并使用以下内容将每个条目的信息存储在多个变量中:

DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = null;
documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document document = null;
document = documentBuilder.parse(file);

NodeList nList = doc.getElementsByTagName("suspect");

for (int i = 0; i < nList.getLength(); i++) {
    String method = document.getElementsByTagName("method").item(0).getTextContent();
    String line = document.getElementsByTagName("line").item(0).getTextContent();
    String score = document.getElementsByTagName("score").item(0).getTextContent();
    String most = document.getElementsByTagName("most").item(0).getTextContent();
}

但是,我还想为每个嫌疑人存储两个包含标签的信息。例如,示例中第一个嫌疑人的参考将存储“Alaming”和“gzoltar”。在最后一个嫌疑人中,除了存储四个标签内的信息外,它还会存储“Nephis”和“gzoltar”。

我无法知道这些标签是什么(它们不会是“Alaming”或“gzoltar”)。我唯一知道的是,最里面的(怀疑,方法,线,分数和大多数)将采用这种格式。

有关如何处理此问题的任何建议?我完全不习惯用Java阅读XML,所以任何建议都会受到赞赏。

0 个答案:

没有答案