`
lijunjie
  • 浏览: 388548 次
  • 性别: 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节点内容的方法,结合具体实例形式分析了java针对xml格式字符串的正则匹配相关操作技巧。 一、正则表达式简介 正则表达式是指一...

    Java 使用正则表达式对象实现正则的获取功能

    在 Java 中,使用正则表达式对象可以实现各种字符串匹配和提取操作。正则表达式对象主要通过 Pattern 和 Matcher 两个类来实现。下面详细介绍如何使用正则表达式对象实现正则获取功能。 一、基本概念 在使用正则...

    java-SAX解析XML、java正则表达式.

    使用Java正则表达式的基本步骤: 1. 创建一个`Pattern`对象,使用`Pattern.compile()`方法编译正则表达式字符串。 2. 创建一个`Matcher`对象,通过调用`Pattern`的`matcher()`方法并传入待匹配的字符串。 3. 使用`...

    正则表达式综合练习

    10. **编程语言支持**:大多数编程语言都内置了正则表达式支持,如Java(Test.java中的例子可能涉及Java的`Pattern`和`Matcher`类),Python的`re`模块,JavaScript的`match`、`replace`等方法。 11. **优化技巧**...

    xml需求文档及正则表达式介绍

    例如,可以用正则表达式匹配XML元素的名称,或者从XML文本中提取特定属性值。然而,对于复杂的XML结构,通常会使用解析库(如Python的lxml库或Java的DOM解析器)来更高效、准确地处理XML文档。 总的来说,XML和正则...

    正则表达式经典实例.pdf

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

    java正则表达式全

    5. **网络数据解析**:在处理HTTP响应或XML、JSON数据时,可以利用正则表达式提取特定字段。 四、正则表达式帮助文档 为了更好地理解和使用Java正则表达式,官方提供的帮助文档是非常宝贵的资源。它包含了详细的...

    网页抓取 正则表达式 前台处理json对象

    2. **正则表达式**:正则表达式(Regular Expression)是一种模式匹配语言,用于查找、替换或提取文本中的特定模式。在网页抓取后,通常需要对抓取的数据进行预处理,这时正则表达式就非常有用。它可以高效地从HTML...

    java正则表达式匹配网页所有网址和链接文字的示例

    在Java编程中,正则表达式是处理文本模式匹配的强大工具,尤其在处理网页内容时,如提取网址和链接文字。这个示例展示了如何使用Java的正则表达式来匹配网页中的所有网址和链接文字。下面将详细讲解相关知识点。 1....

    正则表达式计数代码行数

    本教程将详细介绍如何使用正则表达式来计算代码中的普通代码行数、注释行数和空白行数。 首先,我们要理解代码行的分类: 1. 普通代码行:不包含注释或空格的代码行。 2. 注释行:包含编程语言特定的注释标记的行,...

    ibatis例子加教程&java&javascript&dhtml&正则表达式工具

    标题中的“ibatis例子加教程&java&javascript&dhtml&正则表达式工具”涵盖了五个主要的IT技术领域:iBATIS、Java、JavaScript、DHTML和正则表达式。接下来,我们将深入探讨这些技术及其相关的知识点。 1. iBATIS: ...

    正则表达式经典实例

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

    正则表达式(Java)

    在Java中,我们可以使用`java.util.regex`包中的类,如`Pattern`和`Matcher`来处理正则表达式。例如,使用`matches()`方法可以判断一个字符串是否匹配某个正则表达式。 3. **正则表达式语法**: - **字面值字符**...

    xml+正则表达式(chm)

    8. 在不同编程语言中的应用:如JavaScript、Python、Java等中的正则表达式用法。 通过这两个资源的学习,你不仅可以深入了解XML的原理和实际应用,还能掌握正则表达式这一强大的文本处理工具,提高数据处理和分析的...

    正则表达式(测试工具与手册)

    然而,由于XML和HTML的复杂性,通常建议使用专门的解析库,如Java的DOM或SAX解析器,但正则表达式对于简单的查找和替换任务仍然很有用。 JavaScript中,正则表达式是内建支持的,并且可以使用斜杠`/`来定义,如`/...

    猫头鹰正则测试工具.rar

    "猫头鹰正则测试工具",即RegexBuddy,是一款备受开发者喜爱的正则表达式测试与调试工具,尤其在JS、Python、Java、.Net、XML、JGsoft、Ruby等多种编程语言环境中都有出色的表现。 RegexBuddy不仅提供了一个直观的...

    正则表达式测试,替换,实时转换软件RegexTester

    正则表达式(Regular Expression)是一种模式匹配语言,用于在文本中查找、替换或提取特定的字符串模式。在RegexTester中,你可以输入一个正则表达式,然后在提供的文本框中输入或导入测试数据,软件会即时显示匹配...

    正则表达式精品资料

    本文将深入探讨正则表达式的概念、语法、应用以及如何在Java中使用它们。 一、正则表达式基础 1. 元字符:正则表达式中的特殊字符,如`.`(匹配任意单个字符)、`*`(匹配前一个字符零次或多次)、`+`(匹配前一个...

    Web数据抓取中的正则表达式解析2022优秀文档.pptx

    在Web数据抓取中,正则表达式通常与网络爬虫结合使用,帮助从HTML或XML页面中提取特定的数据,如电子邮件地址、电话号码、文章标题等。通过编写合适的正则表达式,我们可以精确地定位并提取所需的信息,从而自动化...

    Java使用正则表达式截取重复出现的XML字符串功能示例

    在提供的代码片段中,我们看到一个Java方法,它展示了如何通过正则表达式从字符串`s`中提取重复的`&lt;MTCCommand&gt;`标签及其内容。首先,让我们详细解析这段代码: ```java public static void main(String[] args) ...

Global site tag (gtag.js) - Google Analytics