XML解析不适用于lwuit应用程序的android构建

Posted

技术标签:

【中文标题】XML解析不适用于lwuit应用程序的android构建【英文标题】:XML parsing not working on android build of lwuit app 【发布时间】:2012-02-07 11:50:26 【问题描述】:

我使用 Kxml2 解析器来解析我从远程页面获得的 xml 响应。它用于用户身份验证,返回的 xml 提供了有关用户的一些详细信息。该应用程序使用 LWUIT 1.5 构建,适用于 MIDP 和 Blackberry 版本。 在 android 版本上它不起作用。为了让 Android 正常工作,我应该添加任何额外的规范吗?

【问题讨论】:

LWUIT 的“额外规范”在此问题的答案中进行了概述:***.com/questions/7401567/… 感谢@gnat,但我已经添加了额外的规范 [权限]。我最终重新启动了我的系统并且它工作了。但我还没有在真实设备上进行测试。 【参考方案1】:

LWUIT中有一个XMLParser,非常好用。你可以尝试使用它。它在我的 MIDP 和 BB 应用程序中运行良好。我无法在 Android 中对其进行测试,但我认为这可能是解决方案。如何将 LWUIT 应用移植到 Android?

添加

好吧,我会尽力解释这个 Parser 的用法

你需要导入这个包:

import com.sun.lwuit.xml.Element;
import com.sun.lwuit.xml.XMLParser;

在我的项目中,我从 HTTPConnection 中提取了一个 XML。

假设输出的XML如下:

  <?xml version="1.0" encoding="UTF-8"?>
    <xml>
     <TagFromXML>
       <child>
         <data>HI</data>
       </child>
     </TagFromXML>
    <TagFromXML>
      <child>
         <data>HI2</data>
       </child>
     </TagFromXML>
    </xml>

然后执行以下操作:

InputStream is = hc.openInputStream();
InputStreamReader isr = new InputStreamReader(is, "utf-8");
XMLParser myParser = new XMLParser();
Element e = myParser.parse(isr);
Vector tagVector = e.getChildrenByTagName("TagFromXML");
for(int i = 0; i<tagVector.size();i++)
 Element singleTag = (Element) tagVector.elementAt(i);
 Element child = (Element) (singleTag.getChildrenByTagName("child")).elementAt(0);
 Element data = (Element) (child.getChildrenByTagName("data")).elementAt(0);
 System.out.println("DATA: " + data.getChildAt(0).getText());

你会得到

HI2

我希望这对你有用。

【讨论】:

你使用成功了吗?哇!你能举个例子吗?如果它在 LWUIT 本身中工作,则意味着它是抽象的,所以它应该在 Android 中工作。 感谢@jmunoz 的示例,稍后会消化。要将 LWUIT 移植到 Android,您将需要 Eclipse IDE。我遵循了here 和here 的说明。我必须反复阅读才能真正理解 Thorsten 在他的链接(第二个链接)中所说的内容。但它最终得到了回报。它还有助于下载他们的示例和研究代码。如果您需要更多帮助,我在这里 :)

以上是关于XML解析不适用于lwuit应用程序的android构建的主要内容,如果未能解决你的问题,请参考以下文章

主题不适用于 Android 上的 DialogFragment

Spring Rest Service 不适用于 XML 响应

Android应用程序的结构和解析

解析推送不适用于更新现有的 android 应用程序

MSBUILDEMITSOLUTION 不适用于 .NET 4?

无法解析属性“src”中的可绘制对象