【问题标题】:Blackberry development: how to get XMLReader SAXParser黑莓开发:如何获取 XMLReader SAXParser
【发布时间】:2010-08-23 20:30:15
【问题描述】:

我希望将我的工作 Android XML 解析器移植到 Blackberry,但后者的 Java 功能集不够丰富?我不想写两个解析器。

以下代码产生“方法 getXMLReader() 对于 SAXParser 类型未定义”:

SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser        sp  = spf.newSAXParser();
XMLReader        xr  = sp.getXMLReader();

我是不是运气不好?

确实,我正在尝试使用 org.xml.sax。我已经阅读了我可以在那里找到的所有 XML 解析讨论。我现在想知道我是否可以做到这一点?我应该改用 org.kxml2 因为 org.xml.sax 在黑莓领域没有意义吗?

感谢您的建议!

罗斯

【问题讨论】:

    标签: blackberry xml-parsing


    【解决方案1】:

    您不需要使用getXmlReader() 方法。

    现在您已经使用 SAXParser 来解析文档或流。

    SaxParserFactory spf = SaxParerFacter.newInstance();
    SAXParser parser = spf.newSAXParser();
    

    打开您的流或文件并调用并将其分配给变量。让我们打电话给我们的input

    parser.parse(input, handler)
    

    处理程序文件将实现所有回调来处理解析器遇到的事件。

    我发现this explanation of SAX 很有帮助。

    【讨论】:

      【解决方案2】:

      我会回答这个问题,但我怀疑还有其他人知道的更好。

      我对黑莓的评价是它的 API 集很差。因此,SAX XML 解析器不像在 Android 上那样可用。好的,这很酷。它更老,并且来自“更小”的时间。

      更糟糕的是,即使将第三方库添加到 BlackBerry 应用程序,也显得非常具有挑战性。我关注了那里的各种帖子,但未能令人信服地将我自己的“第三方”JAR 合并到一个 BlackBerry 项目中,尽管有许多关于该主题的网页的集体智慧。

      当时我正在考虑编写自己的解析引擎来替换 SAXParser.parse()。因为我对它的期望太幼稚了,这有多难?

      确实很难,因为 JavaME 对 java.lang.Class 的支持似乎也很贫乏;它不支持用于创建引擎的重要反射方法,例如 getDeclaredMethods()(我自然想将现有的 XML 解析器处理程序插入其中)。

      唉,这让我想知道黑莓应用程序到底能做什么?我可能对这个世界漠不关心,但是几天时间就足以让我从零开始在 Android 上解析 Web 上的 XML 文本,所以我也希望在这里度过一段非常轻松的时光。

      请随意撕碎我的答案。如果你能做到,特别是如果你添加一个真实的,它无疑将极大地受益于其他人,包括我以后回到这个问题时,包括我在内(这样我就可以避免通过 XML 流进行暴力字符串)干净地解析它)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-07-12
        • 2010-10-23
        • 2011-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多