我希望将我工作的Android XML解析器移植到Blackberry,但后者的Java功能集并不那么丰富?我不想写两个解析器。
以下代码产生“SAXParser类型的方法getXMLReader()未定义”:
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
我在这里运气不好吗?
我尝试使用 org.xml.sax 是真的。我已经阅读了所有可以找到的XML解析讨论。我现在想知道我能不能这样做?我是否应该使用 org.kxml2 ,因为 org.xml.sax 在BlackBerry领域没有任何意义?
感谢您的任何建议!
拉斯
答案 0 :(得分:1)
您无需使用getXmlReader()
方法。
现在您已让SAXParser使用它来解析文档或流。
SaxParserFactory spf = SaxParerFacter.newInstance();
SAXParser parser = spf.newSAXParser();
打开您的流或文件并调用并将其分配给变量。我们打电话给我们input
。
parser.parse(input, handler)
处理程序文件将实现所有回调以处理解析器遇到的事件。
我发现this explanation of SAX非常有帮助。
答案 1 :(得分:0)
我会回答这个问题,但我怀疑还有其他人知道的更好。
我对黑莓手机的评估是它的API设置很差。因此,SAX XML解析器不可用,因为它在Android上。好的,那很酷。它比较旧,而且时间较短。
更糟糕的是,即使将第三方库添加到BlackBerry应用程序,也显得非常具有挑战性。我跟踪了各种帖子,但未能将我自己的“第三方”JAR令人信服地纳入黑莓项目,尽管该主题有许多网页的集体智慧。
我当时正在考虑编写自己的解析引擎来替换 SAXParser.parse()。由于我对它的期望很幼稚,所以有多难?
确实很难,因为似乎JavaME对 java.lang.Class 的支持也很贫穷;它不支持重要的反射方法,如 getDeclaredMethods(),用于创建引擎(我自然希望插入现有的XML解析器处理程序)。
唉,这让我想知道那里的BlackBerry应用程序能做什么?我可能会给这个世界一点空间,但是几天就足以让我从零开始在Android上从网上解析XML文本,所以我期待它在这里也很容易。请随意粉碎我的答案。如果你可以做到,特别是如果你添加一个真正的,它无疑将大大有益于其他新的BlackBerry开发人员,包括我后来当我回到问题时(这样我可以避免通过XML流强力串穿干净地解析它。)