下面是一段xml:
<bodyContent xsi:type="java:com.webex.service.binding.user.CreateUser">
<firstName>A</firstName>
<lastName>B</lastName>
<webExId></webExId>
<email></email>
<password>888888</password>
<options>
</options>
<timeZone>0</timeZone>
<language>ENGLISH</language>
<active>ACTIVATED</active>
</bodyContent>
现在我只想获取language标签的内容English,请问大虾正则表达式该怎么写?以前没接触过正则表达式
希望各位大虾帮忙!thank you!
<bodyContent xsi:type="java:com.webex.service.binding.user.CreateUser">
<firstName>A</firstName>
<lastName>B</lastName>
<webExId></webExId>
<email></email>
<password>888888</password>
<options>
</options>
<timeZone>0</timeZone>
<language>ENGLISH</language>
<active>ACTIVATED</active>
</bodyContent>
现在我只想获取language标签的内容English,请问大虾正则表达式该怎么写?以前没接触过正则表达式
希望各位大虾帮忙!thank you!
解决方案 »
- 我把Jtable的setDefaultEditorx实现了自己的CellEditor,弄成了单元格是JtextArea,编辑状态不知道怎么自动增加行高
- JAVA 数据结构 算法(对数据结构和算法有深入研究者进)
- java连接SQLServer2000问题
- 請問有人用過java調delphi的DLL文件嗎?
- 关于JMF,请熟悉的兄弟帮助
- 第一次用JBUILDER遇到的问题
- 递归转循环
- 用Applet可否读取其它网站上的网页数据(html源码)?
- 希望得到有益的建议!!!!!!
- 请问哪儿可以下载Visual Age for Java4.0 Enterprise Edition?
- 编码转换问题
- 怎么可以在控制台只输入int 型 ,而输入其他类型时提示禁止。
<securityContext>
<siteName>jeffy</siteName>
<webExID>wbxadmin</webExID>
<password>pass</password>
</securityContext>
</header>
<body>
<bodyContent xsi:type="java:com.webex.service.binding.user.CreateUser">
<firstName>A</firstName>
<lastName>B</lastName>
<webExId></webExId>
<email></email>
<password>888888</password>
<options>
</options>
<timeZone>0</timeZone>
<language>ENGLISH</language>
<active>ACTIVATED</active>
</bodyContent>
</body>
这是原始的xml,我用
Pattern p = Pattern.compile("<(\\w+:)?bodyContent[^>]+>");
Matcher m = p.matcher(elementString);
String tmp = m.find() ? m.group() : "";
解析到的tmp就是我一开始发的xml内容
首先我要获取bodycontent标签,
如果bodycontent标签中含有language标签我就要截取language标签中的内容,其他的我都不要
一次性在里面寫光不行么?一定要先取道bodycontent再取道language?
直接區bodycontent里的language可以嗎?
聽不懂幫頂
順便學習下取兩次的方法
" <firstName>A </firstName> "+
" <lastName>B </lastName> "+
" <webExId> </webExId> "+
" <email> </email> "+
" <password>888888 </password> "+
" <options> "+
" </options> "+
" <timeZone>0 </timeZone> "+
" <language>ENGLISH </language> "+
" <active>ACTIVATED </active> "+
"</bodyContent> ";
int x = 0;
String[] aS;
while(true) {
aS = s.split("<[/]?language>", 3);
x = aS.length;
if (x < 3 || (aS[2]).equals("")) {
break;
}
s = aS[2];
System.out.println(aS[1]); };不过还是建议使用xml解析类库,呵呵
一个就是bodyContent里的actionName如com.webex.service.binding.user.CreateUser里的CreateUser,另外一个就是取language,用来查询我们的客户所用的language属性。
Cspider588 :非常感谢您的回复已经您的解决方案,不过这个不太适合大量的文件。My resolution;
String con = "(<language>)([^>]*)<";
Pattern pat = Pattern.compile(con);
Matcher m = pat.matcher(elementString);
while (m.find()){
String language = m.group(2);
System.out.println(language);
}
//MAIN TEST
String s="<language>ENGLISH</language>";
Pattern p = Pattern.compile("\\<(\\Qlanguage\\E)\\>(\\w+?)\\<\\/\\1\\>");
Matcher m = p.matcher(s);
while(m.find()){
System.out.println(m.group(2));
}
</JAVA>
最简单的