Skip to content

Commit 5560859

Browse files
committed
binarywang#899 WxCpXmlMessage增加存放xml消息的所有属性值的allFieldsMap属性
1 parent 5af4059 commit 5560859

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpXmlMessage.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import java.nio.charset.StandardCharsets;
77
import java.util.ArrayList;
88
import java.util.List;
9+
import java.util.Map;
910

1011
import org.apache.commons.io.IOUtils;
1112

@@ -14,6 +15,7 @@
1415
import lombok.Data;
1516
import lombok.extern.slf4j.Slf4j;
1617
import me.chanjar.weixin.common.api.WxConsts;
18+
import me.chanjar.weixin.common.util.XmlUtils;
1719
import me.chanjar.weixin.common.util.xml.XStreamCDataConverter;
1820
import me.chanjar.weixin.cp.config.WxCpConfigStorage;
1921
import me.chanjar.weixin.cp.util.crypto.WxCpCryptUtil;
@@ -36,6 +38,11 @@
3638
public class WxCpXmlMessage implements Serializable {
3739
private static final long serialVersionUID = -1042994982179476410L;
3840

41+
/**
42+
* 使用dom4j解析的存放所有xml属性和值的map.
43+
*/
44+
private Map<String, Object> allFieldsMap;
45+
3946
///////////////////////
4047
// 以下都是微信推送过来的消息的xml的element所对应的属性
4148
///////////////////////
@@ -349,7 +356,9 @@ public class WxCpXmlMessage implements Serializable {
349356
protected static WxCpXmlMessage fromXml(String xml) {
350357
//修改微信变态的消息内容格式,方便解析
351358
xml = xml.replace("</PicList><PicList>", "");
352-
return XStreamTransformer.fromXml(WxCpXmlMessage.class, xml);
359+
final WxCpXmlMessage xmlMessage = XStreamTransformer.fromXml(WxCpXmlMessage.class, xml);
360+
xmlMessage.setAllFieldsMap(XmlUtils.xml2Map(xml));
361+
return xmlMessage;
353362
}
354363

355364
protected static WxCpXmlMessage fromXml(InputStream is) {

0 commit comments

Comments
 (0)