如何在XML文件中包含包含特殊字符的文件?

时间:2019-11-20 11:43:05

标签: xml

我正在尝试创建一个有效的HTML文件,该文件可以加载并显示其他文件(实体)。 示例:

<?xml version="1.0" encoding="ISO-8859-1"?>
  <!DOCTYPE foo [  
  <!ELEMENT foo ANY >
  <!ENTITY test SYSTEM "file:///myfile" >]><foo>&test;</foo>

这对于文本文件将正常工作,但是如果myfile的内容为“ TEST>”(即包含XML特殊字符),则会返回错误。

使用<foo><![CDATA[&test;]]></foo>无效,因为... CDATA! 我尝试过这种攻击:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE a [
<!ENTITY test "<![CDAT">
<!ENTITY test1 "A[">
<!ENTITY filee SYSTEM "file:///myfile" >]><foo>&test;</foo>
<!ENTITY close "]]>">
]>
<foo>&test;&test1;&filee;&close;</foo>

但是遗憾的是它没有用。然后,我阅读了有关未解析的实体的信息,并尝试了以下操作:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE a [
<!ENTITY myent SYSTEM "FOO" NDATA bar>    
]>
<test>&myent;</test>

并收到错误消息“不允许未解析的实体引用“&myent;”。”

反正有这样做吗?我想要类似<foo>TEST></foo>的输出,其中“ TEST>”是我在第一个示例中加载的文件(“ myfile”)的内容

请注意,该XML文件没有动态交互(例如,使用python加载该文件,然后对其进行技巧)。我需要一个静态XML文件,其工作方式如解析时所述!

非常感谢您:D

0 个答案:

没有答案