System.out.println("gloabl name " + xp.getName());
System.out.println("gloabl text " + xp.getText());
while (true) {
int n = xp.next();
if (n == XmlPullParser.START_TAG) {
System.out.println("gloabl name " + xp.getName());
System.out.println("gloabl text " + xp.getText());
if ("friend".equals(xp.getName())) {
System.out.println("friend " + xp.nextText());// 我们要的东西在这里; 张三 李四 王五可以根据业务模型自己开发不同的解析工具类返回相应的实体
}
} else if (n == XmlPullParser.END_TAG) {
if ("query".equals(xp.getName())) {
break;
}
}
}
return result;
}
}
package org.jivesoftware.expand.send.test;
import org.jivesoftware.smack.packet.IQ;
import org.jivesoftware.smack.provider.IQProvider;
import org.xmlpull.v1.XmlPullParser;
public class TestrrIQProvider implements IQProvider {
public IQ parseIQ(XmlPullParser xp) throws Exception {
TestrrIQ result = new TestrrIQ();
System.out.println("gloabl name " + xp.getName());
System.out.println("gloabl text " + xp.getText());
while (true) {
int n = xp.next();
if (n == XmlPullParser.START_TAG) {
System.out.println("gloabl name " + xp.getName());
System.out.println("gloabl text " + xp.getText());
if ("friend".equals(xp.getName())) {
System.out.println("friend " + xp.nextText());// 我们要的东西在这里; 张三 李四 王五可以根据业务模型自己开发不同的解析工具类返回相应的实体
}
} else if (n == XmlPullParser.END_TAG) {
if ("query".equals(xp.getName())) {
break;
}
}
}
return result;
}
}
3.客户端向服务端发送查询好友请求测试类
[java]
package org.jivesoftware.expand.send.test;
import org.jivesoftware.smack.PacketCollector;
import org.jivesoftware.smack.SmackConfiguration;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.filter.PacketFilter;
import org.jivesoftware.smack.packet.IQ;
import org.jivesoftware.smack.packet.Packet;
import org.jivesoftware.smack.provider.ProviderManager;
import org.jivesoftware.spark.SparkManager;
public class SendIQTestrr {
public static void run() throws Exception {
ProviderManager.getInstance().addIQProvider(TestrrIQ.ELEMENT,
TestrrIQ.NAMESPACE, new TestrrIQProvider());
XMPPConnection con = SparkManager.getConnection();
PacketCollector collector = con
.createPacketCollector(new PacketFilter() {
public boolean accept(Packet p) {
System.out.println("accept packet xml = " + p.toXML());
if (p instanceof TestrrIQ) {
TestrrIQ m = (TestrrIQ) p;
System.out.println(p.toXML());
System.out.println(m.toXML());
return true;
}
return false;
}
});
TestrrIQ disco = new TestrrIQ();
disco.setType(IQ.Type.GET);
disco.setNode(null);
con.sendPacket(disco);
Packet packet = collector.nextResult(SmackConfiguration
.