有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java XMLPullParser特殊字符

我使用XMLPullParser来解析一个XML文档,不幸的是它包含一些特殊字符,如:or&;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) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

    为什么不扩展DefaultHandler它更易于使用,并且使代码更易于重用。我想你不会面对这样的问题