正则表达式匹配xml的问题,太难了 有xml对象给你用,为什么要用正则? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head> <title>无标题页</title></head><body><textarea id="xml" style="display:none"><?xml version="1.0" encoding="UTF-8"> <ProvB> <SvcCon> 0100 </SvcCon> <Msg> 100 </Msg> <Context/> <ParamList> <Param> <ParamKey> code </ParamKey> <ParamValue> 1 </ParamValue> </Param> <Param> <ParamKey> opr </ParamKey> <ParamValue> 22 </ParamValue> </Param> </ParamList> <ConfigList> <ConfigKey> config </ConfigKey> <ConfigValue> 1 </ConfigValue> </ConfigList> </ProvB> </textarea><script type="text/javascript">var xml=document.getElementById("xml").value;document.write("SvcCon:",getSimpleTagInnerText(xml,"SvcCon"),"<br />");document.write("Msg:",getSimpleTagInnerText(xml,"Msg"),"<br />");document.write("Context:",getSimpleTagInnerText(xml,"Context"),"<br />");var pKey=getSimpleTagInnerText(xml,"ParamKey",true);var pValue=getSimpleTagInnerText(xml,"ParamValue",true);if(pKey!=null){ for(var i=0;i<pKey.length;i++){ document.write("ParamKey:",pKey[i],"<br />"); document.write("ParamValue:",pValue[i],"<br />"); }}document.write("ConfigKey:",getSimpleTagInnerText(xml,"ConfigKey"),"<br />");document.write("ConfigValue:",getSimpleTagInnerText(xml,"ConfigValue"),"<br />"); function getSimpleTagInnerText(xmlText,tagName,more){ var pattern="<tagName>\\s*([^<>]*)\\s*</tagName>"; pattern=pattern.replace(/tagName/g,tagName); var reg=new RegExp(pattern); if(more==true){ var reg=new RegExp(pattern,"g"); var m=xmlText.match(reg); for(var i=0;i<m.length;i++){ m[i]=m[i].replace(/^<[^><]*>\s*|\s*<[^><]*>$/g,""); } return m?m:null; }else{ var reg=new RegExp(pattern); var m=xmlText.match(reg); return m?m[1]:null; }}</script></body></html>输出:SvcCon:0100 Msg:100 Context:nullParamKey:codeParamValue:1ParamKey:oprParamValue:22ConfigKey:config ConfigValue:1 后面那个太复杂了.... Firefox 13发出的get请求和post请求顺序问题 如何限制colorbox显示图片的大小 关于循环显示问题 getElementsByName在IE8中的问题 iframe随内容自适应的问题 javascript 算时间的问题,在线等! 还是javascript取datagrid值问题 如何向新弹出的窗口传参数 Math.Round(3.1122,2)我想返回3.11为什么返回的是3呢?我想得到两位小数该怎么做? 增加一个输入项问题,怎么能实现呢 能用JavaScript协议来改百度搜索的背景颜色吗? 如何获取用户浏览器安装了那些插件?
<head>
<title>无标题页</title>
</head>
<body>
<textarea id="xml" style="display:none">
<?xml version="1.0" encoding="UTF-8">
<ProvB>
<SvcCon> 0100 </SvcCon>
<Msg> 100 </Msg>
<Context/>
<ParamList>
<Param>
<ParamKey> code </ParamKey>
<ParamValue> 1 </ParamValue>
</Param>
<Param>
<ParamKey> opr </ParamKey>
<ParamValue> 22 </ParamValue>
</Param>
</ParamList>
<ConfigList>
<ConfigKey> config </ConfigKey>
<ConfigValue> 1 </ConfigValue>
</ConfigList>
</ProvB>
</textarea><script type="text/javascript">
var xml=document.getElementById("xml").value;
document.write("SvcCon:",getSimpleTagInnerText(xml,"SvcCon"),"<br />");
document.write("Msg:",getSimpleTagInnerText(xml,"Msg"),"<br />");
document.write("Context:",getSimpleTagInnerText(xml,"Context"),"<br />");
var pKey=getSimpleTagInnerText(xml,"ParamKey",true);
var pValue=getSimpleTagInnerText(xml,"ParamValue",true);
if(pKey!=null){
for(var i=0;i<pKey.length;i++){
document.write("ParamKey:",pKey[i],"<br />");
document.write("ParamValue:",pValue[i],"<br />");
}
}
document.write("ConfigKey:",getSimpleTagInnerText(xml,"ConfigKey"),"<br />");
document.write("ConfigValue:",getSimpleTagInnerText(xml,"ConfigValue"),"<br />"); function getSimpleTagInnerText(xmlText,tagName,more){
var pattern="<tagName>\\s*([^<>]*)\\s*</tagName>";
pattern=pattern.replace(/tagName/g,tagName);
var reg=new RegExp(pattern);
if(more==true){
var reg=new RegExp(pattern,"g");
var m=xmlText.match(reg);
for(var i=0;i<m.length;i++){
m[i]=m[i].replace(/^<[^><]*>\s*|\s*<[^><]*>$/g,"");
}
return m?m:null;
}else{
var reg=new RegExp(pattern);
var m=xmlText.match(reg);
return m?m[1]:null;
}
}
</script>
</body>
</html>
输出:
SvcCon:0100
Msg:100
Context:null
ParamKey:code
ParamValue:1
ParamKey:opr
ParamValue:22
ConfigKey:config
ConfigValue:1
后面那个太复杂了....