XMLPullParser特殊字符

时间:2012-06-29 09:39:20

标签: java android xml special-characters xmlpullparser

我使用XMLPullParser来解析XML文档,遗憾的是它包含一些特殊的字符:  或者& amp ......看起来这些字符会中断解析过程,只显示这些字符之后的文本,而不是之前(如果特殊字符出现在某些文本内容的中间)。我无法控制这个XML文件,所以我必须在解析文档时解决这个问题。

我该怎么做?我已经做了一些研究,它表明我能够实现一个名为ENTITY_REF的eventType,但我不知道如何处理这种方法。

很高兴得到一些提示。

我的解析器:

    while (eventType != XmlPullParser.END_DOCUMENT) {
        if (eventType == XmlPullParser.START_TAG) {
            currentTag = xpp.getName();

        } else if (eventType == XmlPullParser.TEXT) {

            if ("title".equals(currentTag)) {
                currentEvent.setTitle(xpp.getText());
                System.out.println("Event title: " + xpp.getText());
            } 
        } else if (eventType == XmlPullParser.END_TAG) {
            if ("event".equals(xpp.getName())) {
                events.add(currentEvent);
                currentEvent = new Event();
            }
        }  else if (eventType == XmlPullParser.ENTITY_REF) {
            System.out.println("Entity REF: " + xpp.getText());
        }


        eventType = xpp.nextToken();
    }

2 个答案:

答案 0 :(得分:1)

与SAX一样,XMLPullParser是一种非常低级的解析接口,可以在可用性方面以相当大的成本实现高性能。解析器可以自由地将文本节点分解为片段,并且您的代码需要接受一系列片段并将它们组合成实际的字符串值。

答案 1 :(得分:0)

为什么不扩展DefaultHandler它更容易使用并使您的代码更具可重用性。我想你不会遇到这样的问题。