我们现在互联网的交互很少可以离开xml了。有时候需要的xml很小,除了内容以外,格式也都不变,那么再解析xml的时候就没必要使用那些解析xml的大家伙了。简单使用正则表达式来提交可以省去我们加载和学习那些东西的麻烦。
需要解析的xml数据如下。
处理代码如下:
将上面的xml文件,如果多行替换掉\r\n。然后使用split方法很容易取出<mobile>..</mobile><linkid></linkid>中的内容
需要解析的xml数据如下。
<?xml version="1.0" encoding="UTF-8" ?>
<pwd_message_list version="3.0">
<message_type>SMS_MT</message_type>
<data>
<message>
<msgid>-4992367180402027902</msgid>
<newmsgid>0712211115010001</newmsgid>
<mobile>13428952720</mobile>
<gwid>bjyd</gwid>
<spcode>106601359401159</spcode>
<serviceType>10202011</serviceType>
<linkid>13570813196334064831</linkid>
<mtmsg>heheh59</mtmsg>
<feeflag>1</feeflag>
<cpproductID>123<cpproductID>
<msgfmt>15</msgfmt>
<pktotal>1</pktotal>
<pknumber>1</pknumber>
</message>
......
<message>
<msgid>-4992367180402027902</msgid>
<newmsgid>0712211115010001</newmsgid>
<mobile>13428952720</mobile>
<gwid>bjyd</gwid>
<spcode>106601359401159</spcode>
<serviceType>10202011</serviceType>
<linkid>13570813196334064831</linkid>
<mtmsg>heheh59</mtmsg>
<feeflag>1</feeflag>
<cpproductID>123<cpproductID>
<msgfmt>15</msgfmt>
<pktotal>1</pktotal>
<pknumber>1</pknumber>
</message>
</data>
</pwd_message_list>
处理代码如下:
public void split(String data)
{
data=data.toLowerCase();
ArrayList<SmsMt> smsMtList=new ArrayList<SmsMt>();
Pattern pattern2=Pattern.compile("<message>(.*?)</message>");
Matcher matcher2=pattern2.matcher(data);
while(matcher2.find())
{
int i=1;
String data1=matcher2.group(i);
System.out.println(getParameter(data1,"mobile"));
System.out.println(getParameter(data1,"linkid"));
System.out.println(getParameter(data1,"mtmsg"));
System.out.println(getParameter(data1,"servicetype"));
i++;
}
}
public String getParameter(String data,String para)
{
String result="";
StringBuffer reStr=new StringBuffer();
reStr.append("<");
reStr.append(para);
reStr.append(">");
reStr.append("(.*?)");
reStr.append("</");
reStr.append(para);
reStr.append(">");
Pattern pattern=Pattern.compile(reStr.toString());
Matcher matcher=pattern.matcher(data);
if(matcher.find())
{
result=matcher.group(1);
}
return result;
}
将上面的xml文件,如果多行替换掉\r\n。然后使用split方法很容易取出<mobile>..</mobile><linkid></linkid>中的内容