繁体   English   中英

将xml加载为字符串并在jsp和javascript中使用

[英]Loading xml as string and using in jsp and javascript

我有下面的代码。 语句1加载平均大小(〜300-400KB)的xml文件,并将内容存储到字符串变量(xmlContent)中。 现在,语句2将把jsp变量xmlContent的值放入javascript变量xmlText中。 语句3将尝试在javascript中创建XMLDocument对象(将字符串作为xml文档加载,以便可以通过DOM方法进行解析)。

我必须说xml文件在其中包含单引号和双引号,并且还包含&***;实体&***; 现在为什么第三条语句返回null? 有人可以解释吗?

有人可以告诉我一些更好的方式来传输xml字符串数据,例如通过执行一些编码/解码或转义吗?

谢谢。

<%
 String xmlContent = FileReader.readFile("/xml/books.xml");
%>
<script type="text/javascript">
 var xmlText = ' <% =xmlContent %> ';
 new DOMParser().parseFromString(xmlText, "text/xml");
 //I know that it will not work in IE
</script>

如果您的XML包含换行符(LF / CRLF),则需要先将其删除或在Java代码中对其进行转义,然后再将其传递给Javascript代码。 请记住,在Javascript方面,这就像键入文字字符串一样。 如果您的XML包含换行符,则就像将文字字符串分成多行一样。

更好的选择是使用反斜杠换行符搜索和替换XML中的换行符,以转义Javascript中的换行符并有效地提供多行Javascript字符串。 如果您的XML中有希望保留的换行符,那么CDATA部分也将正确运行。 一些代码:

xmlContent = xmlContent.replace("\n", "\\\n").replace("\r\n", "\\\r\n");

如果您知道XML模式(XSD,并且它不会更改),建议您使用JAXB 您可以实现一个处理XML文件的servlet,并将Bean返回给JSP。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM