从Android解析XML RPC结果
我是否需要将XML结果放入一个临时本地XML文件中,然后从那里进行解析?我正在尝试使用Foxrate的RPC API创建一个“简单”的货币转换,我一直在努力找出下一步该做什么。我在这里遵循的XML示例很好,有些已经超出了我的需要(我认为)。我正在使用code.google中的AndroidXMLRPC库,因此我可以从以下内容开始从Android解析XML RPC结果,android,xml,xml-rpc,Android,Xml,Xml Rpc,我是否需要将XML结果放入一个临时本地XML文件中,然后从那里进行解析?我正在尝试使用Foxrate的RPC API创建一个“简单”的货币转换,我一直在努力找出下一步该做什么。我在这里遵循的XML示例很好,有些已经超出了我的需要(我认为)。我正在使用code.google中的AndroidXMLRPC库,因此我可以从以下内容开始 uri = URI.create("http://foxrate.org/rpc/"); client = new XMLRPCClient(uri);
uri = URI.create("http://foxrate.org/rpc/");
client = new XMLRPCClient(uri);
Object FoxResult = null;
try {
FoxResult = client.call("foxrate.currencyConvert", sourceCurrency, targetCurrency, conversionValue);
Log.d("XMLRPC Test", "result conversion" );
} catch (XMLRPCException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.d("XMLRPC Test", "Error", e);
}
那又怎么样?在过去的几天里,我一直在试图找出如何将结果结构分离,并将它们放入我可以使用的变量中。我是否使用DOM或SAX提取所需的信息?我是否需要为此编写这里提到的事件处理程序?我发现有很多信息,但都有不同的解决方案
来自服务器的响应如下所示:
<params>
<param>
<value>
<struct>
<member>
<name>flerror</name>
<value>
<int>0</int>
</value>
</member>
<member>
<name>amount</name>
<value>
<double>50.36</double>
</value>
</member>
<member>
<name>message</name>
<value>
<string>"2/9/2007"</string>
</value>
</member>
</struct>
</value>
</param>
</params>
弗莱罗
0
数量
50.36
消息
"2/9/2007"
谢谢你的指点 试试这个:
Map<String, Object> FoxResult = client.call("foxrate.currencyConvert", sourceCurrency, targetCurrency, conversionValue);
int flerror = Integer.valueOf(FoxResult.get("flerror").toString());
double amount = Double.valueOf(FoxResult.get("amount").toString());
String message = FoxResult.get("message").toString();
Map FoxResult=client.call(“foxrate.currencyConvert”、sourceCurrency、targetCurrency、conversionValue);
int-flerror=Integer.valueOf(FoxResult.get(“flerror”).toString());
double amount=double.valueOf(FoxResult.get(“amount”).toString());
String message=FoxResult.get(“message”).toString();
您需要对异常和缺少的值进行适当的检查,但是对于
struct
类型,它会返回一个映射。非常感谢,当我回到我的编码框时,我会尝试一下!