首页 新闻 搜索 专区 学院

通过正则表达式匹配Xml数据

0
[已解决问题] 解决于 2016-11-04 14:39

有一串Xml数据,如下:

<reponse>
<cmd>94</cmd>
<seq>87654322</seq>
<uri>sip:1015@115.28.22.67</uri>
<presets>
<desc id="0">door</desc>
<desc id="1">tree</desc>
<desc id="2">window</desc>
<desc id="3">outdoor</desc>
</presets>
</reponse>

我要用正则表达式匹配出id和desc内容,请问具体的表达式怎么写,求解!(必须要用正则表达式)

yangzhou15076的主页 yangzhou15076 | 初学一级 | 园豆:28
提问于:2016-09-12 16:18
< >
分享
最佳答案
0

Pattern:

<desc id="\d*">.*</desc>

奖励园豆:5
朝雨 | 菜鸟二级 |园豆:272 | 2016-09-16 20:21
其他回答(2)
0

preg_match();

1.xml赋值给变量

2.preg_match()函数,取出id的值,并遍历

3.preg_match()函数,取出desc的值,并遍历

芯茹芷水 | 园豆:202 (菜鸟二级) | 2016-09-12 16:35

具体的正则表达式是什么,我写了一个

Pattern p = Pattern.compile("<desc id=\"(.+)\">(.+)</desc>");
Matcher m = p.matcher(xmlData);但是不对,匹配不出来,您知道怎么写吗?

支持(0) 反对(0) yangzhou15076 | 园豆:28 (初学一级) | 2016-09-12 16:48

@yangzhou15076: 你这个斜杠需要转义吧

支持(0) 反对(0) 芯茹芷水 | 园豆:202 (菜鸟二级) | 2016-09-12 16:55

@芯茹芷水: 怎样转移,正则不熟悉,可以写一下吗?谢谢了

支持(0) 反对(0) yangzhou15076 | 园豆:28 (初学一级) | 2016-09-12 16:57

@yangzhou15076: Pattern p = Pattern.compile("<desc id=\"(.+)\">(.+)<\/desc>");

支持(0) 反对(0) 芯茹芷水 | 园豆:202 (菜鸟二级) | 2016-09-12 16:58

@芯茹芷水: 还是匹配不到,这个斜杠是Xml数据里的,不需要转义吧,您看还有哪里有问题

支持(0) 反对(0) yangzhou15076 | 园豆:28 (初学一级) | 2016-09-12 17:03
0

你的xml数据中含有中文的双引号,不知道是不是copy的问题

jello chen | 园豆:7096 (大侠五级) | 2016-09-12 17:53

是的,应该是英文的双引号,那么要怎么写正则呢?

支持(0) 反对(0) yangzhou15076 | 园豆:28 (初学一级) | 2016-09-12 19:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册