微信XML解析

上一篇文章微信开发-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("");  
            }  
        };  
    }  
});

你可能感兴趣的:(微信,XML)