如何将XML文件作为内容包含在XHTML文档的textarea元素中?如果不转义特殊字符,则会导致验证错误。
在使用include指令插入特殊字符之前,是否有一种简单的方法可以转义特殊字符,就像使用JSTL一样?
示例代码:
<div>
<textarea name="content" rows="20" cols="80"><%@ include file="example.xml" %></textarea>
</div>
这在浏览器中看起来很好,但XHTML验证会失败,因为嵌入式文件会启动另一个XML声明。
答案 0 :(得分:5)
“官方”JSTL的做法如下:
<c:import url="example.xml" var="xmlContent"/>
<textarea><c:out value="${xmlContent}" escapeXml="true"/></textarea>
无论如何escapeXml
属性默认为true,但出于文档原因,在此处指定它可能是明智的。
答案 1 :(得分:1)
您可能希望将<%@ include %>
嵌入<![CDATA[...]]>
中,因此它被视为纯文本而非XML部分。您可以阅读this以更深入地了解CDATA的用途。