将xml传递给jquery脚本时出现问题

时间:2012-03-02 06:25:15

标签: java jquery jsp

我正在尝试使用jsp中的bufferedReader从本地路径读取xml并尝试将xml传递给jquery脚本,如下所示

 <%
        StringBuffer xmlStrBuff = new StringBuffer();
        String  xmlStr = null;

        try {
            BufferedReader input = new BufferedReader(new FileReader("C:\\Program Files\\Apache Software Foundation\\Tomcat 7.0\\webapps\\ROOT\\xml\\test.xml"));
            String line = "";
            while ((line = input.readLine()) != null) {
                xmlStrBuff.append(line);
            }
            xmlStr = xmlStrBuff.toString();

        }
        catch ( IOException e) {
            e.printStackTrace();
            System.out.println(e.getMessage());
        }
    %>

      <script>
        var apiXMLStr = <%="'"+xmlStr+"';"%>
        alert(apiXMLStr);      
       $(document).ready(function(){
        parseXML(apiXMLStr);

      });

    </script>

问题在于脚本警报没有向我显示xml,而且这个脚本没有调用parseXML

 var apiXMLStr = <%="'"+xmlStr+"';"%>
            alert(apiXMLStr);   

parseXML调用apcpage.js,其代码如下:

  function parseXML(xml){
     alert('parseXML');
     var xmlObj = $(xml);
     apcXmlData=xmlObj;
     if(xmlObj.find('api').length > 0){ 
       xmlObj.find('api').each(function(i){
          var apiName = $(this).attr('name');      
          var $ctrl = $('<input/>').attr({ type: 'radio', name:'apiName', value:apiName});
          $("#method_list").append($ctrl).append(apiName);                
       });
     }

xml文件是xmlStr输出

?xml version="1.0" encoding="UTF-8"?><apis xmlns:xsi=\'http://www.w3.org/2001/XMLSchema-instance\'>    <api name="getFieldType" requesttype ="GET">         <url>/fieldtype/</url>                <parameters>             <parameter><![CDATA[fieldtype=textbox&fieldId=8668376496495]]></parameter>             <parameter><![CDATA[fieldtype=number&fieldId=93468613046610]]></parameter>             <parameter><![CDATA[fieldtype=multiline&fieldId=1367537832000]]></parameter>          </parameters>    </api>            </apis>

1 个答案:

答案 0 :(得分:0)

使用$ .parseXML工作。 Demo运行2个案例,一个没有额外的解析器。没有失败的那个

http://jsfiddle.net/bUDv3/

也可以修剪xml,当我从上面复制时,最后有一个额外的换行符。可能导致警报未解雇。你在控制台中看到任何错误吗?