微信XML解析

来源:互联网 发布:umeng移动端数据统计 编辑:程序博客网 时间:2024/05/22 12:35

上一篇文章微信开发-java篇中简单的介绍了微信开发入门,里面引用的文章中,使用XML解析是用dom4j来解析的,但回复微信消息的时候,采用的组包方式是直接字符串拼接的方法,这种方法虽然直观,但不方便拓展。

我们也可以用另外的方式,使用XStrem库,进行消息组包。

XStream是一个序列化对象为XML或XML转换为对象的库

关于XStream的教程,大家可以阅读下易百教程的XStream教程,里面介绍的比较详细,其中需要特别注意的是,XStream的注解方法,因为微信消息中的报文,我们可能使用不同的class,但xml的字段是一样的,这里就要使用Xtream的alias方法,比如:

    xstream.alias("xml", yourMessage.getClass());      xstream.alias("item", youeMessageItem.getClass());

然后调用toXML方法,将你消息的类转换为xml格式的字符串。


XStream在实例化的时候,要传入XML解析器,来作为解析的依据,如:

    XStream xstream = new XStream(new StaxDriver());    XStream xstream = new XStream(new XppDriver());    XStream xstream = new XStream(new DomDriver());

大家可以通过XML解析方式对比(含XPP3解析)来了解下各种XML解析方式,我采用的是XppDriver。

private static XStream xstream = new XStream(new XppDriver() {      public HierarchicalStreamWriter createWriter(Writer out) {          return new PrettyPrintWriter(out) {            @SuppressWarnings("unchecked")              public void startNode(String name, Class clazz) {                  super.startNode(name, clazz);              }                protected void writeText(QuickWriter writer, String text) {                 writer.write("<![CDATA[");                  writer.write(text);                  writer.write("]]>");              }          };      }  });

0 0
原创粉丝点击