<message id="64Vz5-10" to="210@localhost" type="chat"><body>idirkfkckckckcjdjdnx hdhdjcj</body><MediaType xmlns="jabber:client">1</MediaType><MediaPlaceHolder xmlns="jabber:client">AFGDSGYWY+VXXBNVNXVVX+J3VGSFSJFSSJSFJFS+FJS</MediaPlaceHolder><RemoteURL xmlns="jabber:client">http://www.google.com</RemoteURL></message>
如何解析Android中给定响应的值?
我正在尝试获取MediaType,MediaPlaceHolder和RemoteURL的值。
这就是我在做的事情:
if (packet instanceof Message) {
Message message = (Message) packet;
if (message.getBody() != null) {
Log.e(" message.toXML()", message.toXML() + '\n' + " : " + packet.toXML());
//Get extension from message
try {
CustomExtension fileExt = (CustomExtension) message.getExtension(CustomExtension.NAMESPACE);
// PacketExtension ext = message.getExtension(CustomExtension.ELEMENT_MEDIA_HOLDER);
// Log.e("File Extension ", "description:----" + ext.toXML());
if (fileExt != null) {
//Get values from extension
String filePath = fileExt.getFileType();
System.out.println("Message --:" + message.getBody() + " File url:--" + filePath);
}
} catch (Exception e) {
e.printStackTrace();
}
String fromName = StringUtils.parseBareAddress(message.getFrom());
我收到ClassCastException:
org.jivesoftware.smack.packet.DefaultPacketExtension