`
lijunjie
  • 浏览: 386717 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java使用正则表达式,简单提取xml中的内容

阅读更多
我们现在互联网的交互很少可以离开xml了。有时候需要的xml很小,除了内容以外,格式也都不变,那么再解析xml的时候就没必要使用那些解析xml的大家伙了。简单使用正则表达式来提交可以省去我们加载和学习那些东西的麻烦。

需要解析的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>中的内容
2
1
分享到:
评论

相关推荐

    Java使用正则表达式提取XML节点内容的方法示例

    主要介绍了Java使用正则表达式提取XML节点内容的方法,结合具体实例形式分析了java针对xml格式字符串的正则匹配相关操作技巧,需要的朋友可以参考下

    正则表达式经典实例

    书中提供了上百种可以在实战中使用的实例,以帮助读者使用正则表达式来处理数据和文本。对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误以及完成一些常见的任务,本书给出了涉及基于C#、Java、...

    正则表达式经典实例.pdf

    书中提供了上百种可以在实战中使用的实例,以帮助读者使用正则表达式来处理数据和文本。对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误以及完成一些常见的任务,本书给出了涉及基于C#、Java、...

    正则表达式教程

    )+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$26 中文字符的正则表达式:[\u4e00-\u9fa5]27 双字节字符:[^\x00-\xff] (包括汉字在内,可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1))28 空白行的正则表达式...

    JAVA_API1.6文档(中文)

    java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类的服务提供者类。 java.util.zip 提供用于读写标准 ZIP 和 GZIP 文件格式的类。 javax.accessibility 定义了用户...

    java爬虫实战项目源码

    你可以通过这些实例代码学习如何解析HTML和XML文档,如何利用正则表达式提取目标数据,以及如何使用多线程提高爬取效率。 如果你已经掌握了Java爬虫的基础知识,你可以根据自己的需要对项目进行修改和扩展,以便更...

    Java 1.6 API 中文 New

    java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类的服务提供者类。 java.util.zip 提供用于读写标准 ZIP 和 GZIP 文件格式的类。 javax.accessibility 定义了用户界面...

    JavaAPI1.6中文chm文档 part1

    java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类的服务提供者类。 java.util.zip 提供用于读写标准 ZIP 和 GZIP 文件格式的类。 javax.accessibility 定义了用户...

    generic-webhook-trigger-plugin:可以接收任何HTTP请求,从JSON或XML中提取任何值,并使用这些值作为变量来触发作业。 与GitHub,GitLab,Bitbucket,Jira等一起使用

    仅当提供的正则表达式与提取的变量匹配时,才有可选功能来触发作业。 这是一个示例,假设帖子内容如下所示: { "before" : "1848f1236ae15769e6b31e9c4477d8150b018453" , "after" : "5cab18338eaa83240ab86c7b...

    LaProb:拉普罗布

    根据BugRepository.xml中对应的标签提取每个报告的摘要,描述和固定文件,在描述中用正则表达式提取堆栈跟踪。 2个源文件提取源工程的src文件夹下的所有java文件,用其对应的长文件名命名。用AST提取每个java文件的...

    java api最新7.0

    java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类的服务提供者类。 java.util.zip 提供用于读写标准 ZIP 和 GZIP 文件格式的类。 javax.accessibility 定义了用户界面...

    JavaAPI中文chm文档 part2

    java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类的服务提供者类。 java.util.zip 提供用于读写标准 ZIP 和 GZIP 文件格式的类。 javax.accessibility 定义了用户...

    javautils:Java实用程序

    常用工具类,包括常量定义,正则表达式工具类,字符串工具类,IO流关闭,java对象拷贝 2 com.wind.media tess4j工具类,ocr文字识别,以及opencv得身份证人脸提取, 音频,二维码 3 com.wind.encrypt 加密解密工具类...

    [Java参考文档]

    java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类的服务提供者类。 java.util.zip 提供用于读写标准 ZIP 和 GZIP 文件格式的类。 javax.accessibility 定义了用户...

    基于Java和Python的爬虫项目实战源码.zip

    正则表达式: 对URL进行过滤,只提取符合特定格式的链接; 提取网页内容; HTMLParser: 文本抽取; 链接抽取; 资源抽取; 链接检查; 站点检查; URL重写; 广告清除; 将HTML页面转化成XML页面; HTML页面清理; ...

    [Java参考文档].JDK_API 1.6

    java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类的服务提供者类。 java.util.zip 提供用于读写标准 ZIP 和 GZIP 文件格式的类。 javax.accessibility 定义了用户界面...

    XQuery权威指南(简码·扫描版)

     本书比较深入全面地介绍了XQuery相关知识,包括XQuery的概述和快速指南,如何使用XQuery编写简单和复杂的查询,如何对XML数据过滤、排序和分组,还讲述了FLWOR表达式、XPath及提取、组合数据的XQuery工具。...

Global site tag (gtag.js) - Google Analytics