我们现在互联网的交互很少可以离开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>中的内容
分享到:
相关推荐
Java使用正则表达式提取XML节点内容的方法示例主要介绍了Java使用正则表达式提取XML节点内容的方法,结合具体实例形式分析了java针对xml格式字符串的正则匹配相关操作技巧。 一、正则表达式简介 正则表达式是指一...
在 Java 中,使用正则表达式对象可以实现各种字符串匹配和提取操作。正则表达式对象主要通过 Pattern 和 Matcher 两个类来实现。下面详细介绍如何使用正则表达式对象实现正则获取功能。 一、基本概念 在使用正则...
10. **编程语言支持**:大多数编程语言都内置了正则表达式支持,如Java(Test.java中的例子可能涉及Java的`Pattern`和`Matcher`类),Python的`re`模块,JavaScript的`match`、`replace`等方法。 11. **优化技巧**...
例如,Python中的`re`模块、Java中的`java.util.regex`包、JavaScript中的`RegExp`对象等,都提供了丰富的正则表达式功能,使得开发者能够轻松地进行字符串操作。 #### 应用实例 正则表达式的应用十分广泛,以下是...
例如,可以用正则表达式匹配XML元素的名称,或者从XML文本中提取特定属性值。然而,对于复杂的XML结构,通常会使用解析库(如Python的lxml库或Java的DOM解析器)来更高效、准确地处理XML文档。 总的来说,XML和正则...
2. **多语言支持**:书中详细阐述了如何在不同的编程语言和脚本语言中有效使用正则表达式,帮助读者理解不同语言之间正则表达式的API、语法和行为差异。 3. **实际应用案例**:提供了上百个实用的实例,涵盖文本...
5. **网络数据解析**:在处理HTTP响应或XML、JSON数据时,可以利用正则表达式提取特定字段。 四、正则表达式帮助文档 为了更好地理解和使用Java正则表达式,官方提供的帮助文档是非常宝贵的资源。它包含了详细的...
本教程将详细介绍如何使用正则表达式来计算代码中的普通代码行数、注释行数和空白行数。 首先,我们要理解代码行的分类: 1. 普通代码行:不包含注释或空格的代码行。 2. 注释行:包含编程语言特定的注释标记的行,...
- **执行**: 使用 `re.compile()` 编译正则表达式,再使用 `findall()` 方法提取匹配项。 - **结果**: 返回匹配到的内存大小(例如“512”)。 ### 4. 获取用户ID和名称 第四个例子涉及到了如何从系统命令输出中...
在Java编程中,正则表达式是处理文本模式匹配的强大工具,尤其在处理网页内容时,如提取网址和链接文字。这个示例展示了如何使用Java的正则表达式来匹配网页中的所有网址和链接文字。下面将详细讲解相关知识点。 1....
2. **正则表达式**:正则表达式(Regular Expression)是一种模式匹配语言,用于查找、替换或提取文本中的特定模式。在网页抓取后,通常需要对抓取的数据进行预处理,这时正则表达式就非常有用。它可以高效地从HTML...
使用Java正则表达式的基本步骤: 1. 创建一个`Pattern`对象,使用`Pattern.compile()`方法编译正则表达式字符串。 2. 创建一个`Matcher`对象,通过调用`Pattern`的`matcher()`方法并传入待匹配的字符串。 3. 使用`...
标题中的“ibatis例子加教程&java&javascript&dhtml&正则表达式工具”涵盖了五个主要的IT技术领域:iBATIS、Java、JavaScript、DHTML和正则表达式。接下来,我们将深入探讨这些技术及其相关的知识点。 1. iBATIS: ...
在Java中,我们可以使用`java.util.regex`包中的类,如`Pattern`和`Matcher`来处理正则表达式。例如,使用`matches()`方法可以判断一个字符串是否匹配某个正则表达式。 3. **正则表达式语法**: - **字面值字符**...
8. 在不同编程语言中的应用:如JavaScript、Python、Java等中的正则表达式用法。 通过这两个资源的学习,你不仅可以深入了解XML的原理和实际应用,还能掌握正则表达式这一强大的文本处理工具,提高数据处理和分析的...
然而,由于XML和HTML的复杂性,通常建议使用专门的解析库,如Java的DOM或SAX解析器,但正则表达式对于简单的查找和替换任务仍然很有用。 JavaScript中,正则表达式是内建支持的,并且可以使用斜杠`/`来定义,如`/...
"猫头鹰正则测试工具",即RegexBuddy,是一款备受开发者喜爱的正则表达式测试与调试工具,尤其在JS、Python、Java、.Net、XML、JGsoft、Ruby等多种编程语言环境中都有出色的表现。 RegexBuddy不仅提供了一个直观的...
正则表达式(Regular Expression)是一种模式匹配语言,用于在文本中查找、替换或提取特定的字符串模式。在RegexTester中,你可以输入一个正则表达式,然后在提供的文本框中输入或导入测试数据,软件会即时显示匹配...
本文将深入探讨正则表达式的概念、语法、应用以及如何在Java中使用它们。 一、正则表达式基础 1. 元字符:正则表达式中的特殊字符,如`.`(匹配任意单个字符)、`*`(匹配前一个字符零次或多次)、`+`(匹配前一个...
在Web数据抓取中,正则表达式通常与网络爬虫结合使用,帮助从HTML或XML页面中提取特定的数据,如电子邮件地址、电话号码、文章标题等。通过编写合适的正则表达式,我们可以精确地定位并提取所需的信息,从而自动化...