公众号 对我的服务器 post 文本消息时 未转义 ]]>
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document document = db.parse(request.getInputStream()); Element root = document.getDocumentElement(); String originId = root.getElementsByTagName( "ToUserName" ).item( 0 ).getTextContent(); String openid = root.getElementsByTagName( "FromUserName" ).item( 0 ).getTextContent(); String createTime = root.getElementsByTagName( "CreateTime" ).item( 0 ).getTextContent(); String msgType = root.getElementsByTagName( "MsgType" ).item( 0 ).getTextContent(); String msgId = root.getElementsByTagName( "MsgId" ).item( 0 ).getTextContent(); switch (msgType) { case "text" : String msg = root.getElementsByTagName( "Content" ).item( 0 ).getTextContent(); return new TextMessage(originId, openid, createTime, msg, msgId); default : return null ; } |
这个是我用来解析消息的,经测试,若消息中含有]]>这样的文本就会使这段代码抛出SAXParseException,你们可不可以不要全都用CDATA来输出xml啊喂,这咋整啊这
你们的xml都是这样的:
< xml > < ToUserName > <![CDATA[toUser]]> </ ToUserName > < FromUserName > <![CDATA[fromUser]]> </ FromUserName > < CreateTime >1348831860</ CreateTime > < MsgType > <![CDATA[text]]> </ MsgType > < Content > <![CDATA[this is a test]]> </ Content > < MsgId >1234567890123456</ MsgId > </ xml > |
引用自你们的文档
这要是输入个]]>谁遭得住啊这