具有数字实体的XML文件不识别标签

时间:2017-11-15 13:30:22

标签: xml google-chrome internet-explorer difference

我正在研究一些XML文件来解析一些数据。在一个XML文件中,内容类似于

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<dataroot>
    <analyst>
        <id>100</id>
        <name>bob</name>
    </analyst>
    <analyst>
        <id>101</id>
        <name>alice</name>
    </analyst>
</dataroot>

而在其他方面,内容就像

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<dataroot>
    &#60;analyst&#62;
        &#60;id&#62;100&#60;/id&#62;
        &#60;name&#62;bob&#60;/name&#62;
    &#60;/analyst&#62;
    &#60;analyst&#62;
        &#60;id&#62;101&#60;/id&#62;
        &#60;name&#62;alice&#60;/name&#62;
    &#60;/analyst&#62;
</dataroot>

在一个文件中,除了实际的字符之外,还有数字字符实体。

但是当在浏览器(IE和Chrome)中打开文件时,文件似乎不同。

第一个文件显示为 - enter image description here

第二个文件显示为 - enter image description here

我检查的另一件事是,如果在同一个文件中我们同时拥有数字实体和字符本身它会显示不同的东西。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<dataroot>
    <analyst>
        &#60;id&#62;100&#60;/id&#62;
        &#60;name&#62;alice&#60;/name&#62;
    </analyst>
    &#60;analyst&#62;
        &#60;id&#62;101&#60;/id&#62;
        &#60;name&#62;bob&#60;/name&#62;
    &#60;/analyst&#62;
</dataroot>

显示为

enter image description here

正常写入时识别标签,无法识别是否存在数字实体。为什么会这样? 为什么这两个显示不同?

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

根据您在问题中显示的内容,文件的内容实际上是不同的。第一个文件显示标准XML。创建第二个文件的过程实际上是 XML转义 分析师 XML元素。这会将分析师元素转换为有效文本。这SO question and answer has a good explanation of the reasons for escaping XML

修复方法是获取创建XML文件的进程以生成一致的非转义XML。