我正在尝试使用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>
答案 0 :(得分:0)
使用$ .parseXML工作。 Demo运行2个案例,一个没有额外的解析器。没有失败的那个
也可以修剪xml,当我从上面复制时,最后有一个额外的换行符。可能导致警报未解雇。你在控制台中看到任何错误吗?