如何解析Android SAX中具有TEXT或Child节点的节点

时间:2015-08-18 01:08:04

标签: android sax saxparser

我正在尝试使用SAX解析下面的XML:

<feed>
<item>
    <link>
        <type>MY TYPE</type>
        <id>123456789</id>
        <key>123456789</key>
    </link>
</item>
<item>
    <link>htt://www.example.com</link>
</item>
</feed>

节点链接可以有子节点(类型,ID,密钥)或文本。

我尝试使用以下代码段:

RootElement root = new RootElement("feed");
Element item = root.getChild("item");

item.getChild("link").setEndTextElementListener(new EndTextElementListener() {
  public void end(String body) {
    // Grab link text
  }
});

item.getChild("link").getChild("type").setEndTextElementListener(new EndTextElementListener() {
  public void end(String body) {
    // Get type node text
  }
});

但问题是SAX会抛出以下异常:

if (endTextElementListener != null) {
throw new IllegalStateException("This element already has an end"
        + " text element listener. It cannot have children.");
}

有没有办法解析可以有TEXT或子节点的节点?或者XML结构是否需要更改?

1 个答案:

答案 0 :(得分:0)

显然使用默认处理程序是不可能的,所以我最终实现了一个自定义处理程序来解决这个问题。