如何在XML中使用外部实体?

时间:2011-10-16 10:01:12

标签: xml entity

我试图了解如何使用外部实体,但我遗漏了一些东西。

我有第一个文件 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和chrome

显示test_entity2.xml

1 个答案:

答案 0 :(得分:6)

您所做的是有效的XML,并且可以使用符合规范且不受安全限制影响的XML解析器。

尝试在IE中查看XML。某些浏览器(如FireFox和Chrome)具有非常严格的安全设置,并且不会加载文件实体引用和引用filesystm上的文件的XSLT处理指令。