如何使用SAX Parser解析xml文件中的嵌套标记

时间:2015-06-17 16:04:46

标签: java saxparser

我看到一堆类似的线程,但还没有找到一个回答我的问题。我有一个像这样的xml -

<MyDoc>
  <Book>
    <BookObject>
       <name>Intro to CS</name>
       <year>2009</year>
    <BookObject>
  </Book>
  <CD>
    <CDObject>
       <name>Exercises</name>
       <year>2009</year>
    </CDObject>
    <CDObject>
       <name>Appendix</name>
       <year>2009</year>
    </CDObject>
  </CD>
</MyDoc>

在startElement中我只有这个:

@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException
{
        tagName = qName;
    }

但我无法弄清楚如何实现

下面的endElement
@Override
public void endElement(String uri, String localName, String qName) throws SAXException
{

    if (tagName.equalsIgnoreCase("BookObject"))
    {
        //what here?

    }
}

寻找可能有用的示例链接或指向我需要进行的api调用的指针。我有这些POJOS - Book,BookObject,CD,CDObject和MyDoc。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你还没有真正告诉我们你想做什么,但你可能想做的事情就像......

在startElement()中 - 当您看到一个开头时,然后创建一个Book对象。当您看到a时,然后在Book对象中创建一个新的BookObject。对于BookObject中的内容,您需要实现:

public void characters(char[] ch, int start, int length) throws SAXException;

这将调用你的&lt; name&gt;中的内容。例如,对象,所以你还需要跟踪你在其中的一个。