有xml对象给你用,为什么要用正则?

解决方案 »

  1.   

    <!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:null
    ParamKey:code
    ParamValue:1
    ParamKey:opr
    ParamValue:22
    ConfigKey:config 
    ConfigValue:1 
    后面那个太复杂了....