代码之家  ›  专栏  ›  技术社区  ›  Russ Bateman Basil Bourque

BlackBerry开发:如何获取XmlReader SaxParser

  •  1
  • Russ Bateman Basil Bourque  · 技术社区  · 16 年前

    我想把我工作的Android XML解析器移植到黑莓,但是后者的Java特征集不是那么丰富?我不想写两个解析器。

    以下代码生成“对于类型saxparser,getxmlreader()方法未定义”:

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

    我只是运气不好吗?

    我确实想用 OX.XML.SAX . 我已经阅读了所有可以在那里找到的XML解析讨论。我想知道我现在是否能做到?我应该用吗 KXML2 而是因为 OX.XML.SAX 在黑莓土地上毫无意义?

    谢谢你的建议!

    罗斯

    2 回复  |  直到 16 年前
        1
  •  1
  •   Benjamin Cassidy    16 年前

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

    现在您有了SAXParser,就可以使用它来解析文档或流。

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

    打开流或文件并调用并将其分配给变量。让我们呼唤我们的 input .

    parser.parse(input, handler)
    

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

    我发现 this explanation of SAX 非常有帮助。

        2
  •  0
  •   Russ Bateman Basil Bourque    16 年前

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

    我对黑莓的评价是它的API非常差。因此,SAX XML解析器不可用,因为它在Android上可用。好吧,很酷。它是从一个“较小”的时间。

    更糟糕的是,即使在黑莓应用程序中添加第三方库也显得非常具有挑战性。我在那里关注了各种各样的帖子,但没有将我自己的“第三方”jar令人信服地融入到黑莓项目中,尽管有很多关于这个主题的网页的集体智慧。

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

    非常困难,因为似乎javame支持 JavaLang.C类 也很贫困;它不支持重要的反射方法,如 GetDeclaredMethods()。 用于创建引擎(我自然希望将现有的XML解析器处理程序插入其中)。

    唉,这让我想知道现在的黑莓应用到底能做什么?我可能会给这个世界一个简短的介绍,但是几天的时间足以让我从零开始在Android上解析Web上的XML文本,所以我希望在这里也能有一段非常轻松的时间。

    请随意撕碎我的答案。如果你能做到,特别是如果你添加了一个真正的,它无疑会大大有利于黑莓开发的其他人,包括我以后回到这个问题上来时(这样我就可以避免在XML流中使用暴力的字符串,而不是清晰地解析它)。

    推荐文章