diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpXmlMessage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpXmlMessage.java
index d50bd899..2470aff4 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpXmlMessage.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpXmlMessage.java
@@ -382,7 +382,7 @@ public class WxMpXmlMessage {
public static WxMpXmlMessage fromXml(String xml) {
try {
// 操蛋的微信,模板消息推送成功的消息是MsgID,其他消息推送过来是MsgId
- xml = xml.replaceAll("", "").replaceAll("", "");
+ xml = xml.replaceAll("", "").replaceAll("", "");
return XmlTransformer.fromXml(WxMpXmlMessage.class, xml);
} catch (JAXBException e) {
throw new RuntimeException(e);
diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/bean/WxMpXmlMessageTest.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/bean/WxMpXmlMessageTest.java
index 346681cb..3885ec32 100644
--- a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/bean/WxMpXmlMessageTest.java
+++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/bean/WxMpXmlMessageTest.java
@@ -87,5 +87,86 @@ public class WxMpXmlMessageTest {
Assert.assertEquals(wxMessage.getSendLocationInfo().getLabel(), " 广州市海珠区客村艺苑路 106号");
Assert.assertEquals(wxMessage.getSendLocationInfo().getPoiname(), "wo de poi");
}
-
+
+ public void testFromXml2() {
+
+ String xml = ""
+ + ""
+ + " "
+ + "1348831860"
+ + ""
+ + ""
+ + "1234567890123456"
+ + ""
+ + ""
+ + ""
+ + ""
+ + "23.134521"
+ + "113.358803"
+ + "20"
+ + ""
+ + ""
+ + ""
+ + ""
+ + ""
+ + ""
+ + ""
+ + "23.137466"
+ + "113.352425"
+ + "119.385040"
+ + ""
+ + " "
+ + " "
+ + ""
+ + ""
+ + " 1\n"
+ + " "
+ + " - "
+ + " "
+ + "
"
+ + " "
+ + ""
+ + ""
+ + " \n"
+ + " \n"
+ + " \n"
+ + " \n"
+ + " \n"
+ + ""
+ + "";
+ WxMpXmlMessage wxMessage = WxMpXmlMessage.fromXml(xml);
+ Assert.assertEquals(wxMessage.getToUserName(), "toUser");
+ Assert.assertEquals(wxMessage.getFromUserName(), "fromUser");
+ Assert.assertEquals(wxMessage.getCreateTime(), new Long(1348831860l));
+ Assert.assertEquals(wxMessage.getMsgType(), WxConsts.XML_MSG_TEXT);
+ Assert.assertEquals(wxMessage.getContent(), "this is a test");
+ Assert.assertEquals(wxMessage.getMsgId(), new Long(1234567890123456l));
+ Assert.assertEquals(wxMessage.getPicUrl(), "this is a url");
+ Assert.assertEquals(wxMessage.getMediaId(), "media_id");
+ Assert.assertEquals(wxMessage.getFormat(), "Format");
+ Assert.assertEquals(wxMessage.getThumbMediaId(), "thumb_media_id");
+ Assert.assertEquals(wxMessage.getLocationX(), new Double(23.134521d));
+ Assert.assertEquals(wxMessage.getLocationY(), new Double(113.358803d));
+ Assert.assertEquals(wxMessage.getScale(), new Double(20));
+ Assert.assertEquals(wxMessage.getLabel(), "位置信息");
+ Assert.assertEquals(wxMessage.getDescription(), "公众平台官网链接");
+ Assert.assertEquals(wxMessage.getUrl(), "url");
+ Assert.assertEquals(wxMessage.getTitle(), "公众平台官网链接");
+ Assert.assertEquals(wxMessage.getEvent(), "subscribe");
+ Assert.assertEquals(wxMessage.getEventKey(), "qrscene_123123");
+ Assert.assertEquals(wxMessage.getTicket(), "TICKET");
+ Assert.assertEquals(wxMessage.getLatitude(), new Double(23.137466));
+ Assert.assertEquals(wxMessage.getLongitude(), new Double(113.352425));
+ Assert.assertEquals(wxMessage.getPrecision(), new Double(119.385040));
+ Assert.assertEquals(wxMessage.getScanCodeInfo().getScanType(), "qrcode");
+ Assert.assertEquals(wxMessage.getScanCodeInfo().getScanResult(), "1");
+ Assert.assertEquals(wxMessage.getSendPicsInfo().getCount(), new Long(1l));
+ Assert.assertEquals(wxMessage.getSendPicsInfo().getPicList().get(0).getPicMd5Sum(), "1b5f7c23b5bf75682a53e7b6d163e185");
+ Assert.assertEquals(wxMessage.getSendLocationInfo().getLocationX(), "23");
+ Assert.assertEquals(wxMessage.getSendLocationInfo().getLocationY(), "113");
+ Assert.assertEquals(wxMessage.getSendLocationInfo().getScale(), "15");
+ Assert.assertEquals(wxMessage.getSendLocationInfo().getLabel(), " 广州市海珠区客村艺苑路 106号");
+ Assert.assertEquals(wxMessage.getSendLocationInfo().getPoiname(), "wo de poi");
+ }
+
}