0

我有xml结构

<data>
   <id>id</id>
   <title>dataTitle</title>
   <entry>
      <title>title1</title>
   </entry>
   <entry>
      <title>title2</title>
   </entry>
</data>

我想解析它并将其保存在列表中的条目下仅标题元素。如何在 endElement 中检查该标题是否正在条目中?不是我有 NullPointerExpception 因为解析器试图保存作为数据子项的标题。

@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
    elementOn = true;
    if ("entry".equals(localName)) {
        song = new Song();
    }
}


@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
    elementOn = false;

    if ("title".equalsIgnoreCase(localName)) {
        song.setTitle(elementValue);
    } else if ("entry".equalsIgnoreCase(localName)) {
        songList.add(song);
    }
}
4

1 回答 1

1

在这种情况下,您可以使用堆栈分别在 startElement 和 endElement 事件中推送弹出cData。在 endElement 事件中添加一个检查,以便只存储您需要的数据

于 2014-01-27T06:39:36.443 回答