2009-12-03 57 views
1

如何將XML文件作爲內容包含在XHTML文檔的textarea元素中?如果特殊字符沒有轉義,它將導致驗證錯誤。如何使用JSP將XML文件插入XHTML頁面<textarea>?

在使用include指令插入特殊字符(如使用JSTL)之前,JSP中有沒有簡單的方法來轉義特殊字符?

示例代碼:

<div> 
     <textarea name="content" rows="20" cols="80"><%@ include file="example.xml" %></textarea> 
    </div> 

這看起來很好的瀏覽器,但因爲嵌入式文件啓動另一個XML聲明XHTML驗證將失敗。

+0

如果瀏覽器從錯誤中恢復,並且XML文件不包含字符串「」,它只會在瀏覽器中「顯得很好」。 – Quentin 2009-12-03 14:25:48

回答

5

的這樣的「官方」 JSTL方式如下:

<c:import url="example.xml" var="xmlContent"/> 

<textarea><c:out value="${xmlContent}" escapeXml="true"/></textarea> 

escapeXml屬性默認爲true,無論如何,但它可能是明智的,在這裏指定爲文檔的原因。

+0

你可能意味着它默認爲'true' ...? – Romain 2009-12-03 14:28:05

+0

s /默認爲false /默認爲true。儘管如此+1。 – BalusC 2009-12-03 14:29:25

+0

哎呀,對不起,是的,我以爲「真」,並輸入「假」。 – skaffman 2009-12-03 14:29:55

1

您可能希望將<%@ include %>嵌入<![CDATA[...]]>,因此它被認爲是純文本而不是XML部分。您可以閱讀this以更深入地瞭解CDATA的用途。

+0

僅當文檔使用XML內容類型(例如application/xhtml + xml)時才起作用XHTML的大多數用途將其用作text/html,因此忽略CDATA標記。 – Quentin 2009-12-03 14:25:10

相關問題