我正在尝试使用 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>
使用 $.parseXML 工作。演示运行 2 种情况,一种有额外的解析器,另一种没有额外的解析器。没有失败的那一个
http://jsfiddle.net/bUDv3/ http://jsfiddle.net/bUDv3/
也可能会修剪 xml ,当我从上面复制时,末尾有一个额外的换行符。可能是警报未触发的原因。您在控制台中看到任何错误吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)