2011-10-16 35 views
3

我想了解如何使用外部實體,但我錯過了一些東西。如何在XML中使用外部實體?

我有第一個文件,test_entity.xml

<?xml version="1.0" encoding="UTF-8" ?> 
<test> 
    <test_1>Inside</test_1> 
</test> 

和第二文件test_entity2.xml

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE root [ 
    <!ENTITY test_entity SYSTEM "/Users/username/test_entity.xml"> 
    <!ENTITY test_string "This is a test"> 
]> 
<root> 
    <tmp id="1">&test_entity;</tmp> 
    <tmp id="2">&test_string;</tmp> 
</root> 

在這裏,我試圖嵌入test_entity.xml內容納入test_entity2 .xml但輸出看起來像這樣:

<root> 
    <tmp id="1"/> 
    <tmp id="2">This is a test</tmp> 
</root> 

我錯過了什麼?

更新

我顯示通過Firefox和test_entity2.xml鉻

+1

你所做的是正確的。你如何驗證輸出(在瀏覽器中打開XML,通過身份轉換等)?你確定'test_entity'的路徑是正確的嗎? –

+0

「ou [t]看起來像這樣:」。什麼的輸出?您對輸入生成此輸出的過程是什麼樣的?您是如何看待輸出的? –

+0

@MadsHansen我確認路徑是正確的。我正在驗證輸出與Firefox和Chrome – Spredzy

回答

6

你在做什麼是有效的XML,並會與堅持規範,而不是由安全步履蹣跚的XML解析器工作限制。

嘗試查看IE中的XML。某些瀏覽器(如FireFox和Chrome)具有非常嚴格的安全設置,不會加載文件實體引用以及在文件引用上引用文件的XSLT處理指令。

相關問題