试图在这里帮助一个朋友......有一些输出是由一个将xml节点输出到文件中的外部工具生成的。他需要使这个 xml 格式正确并在其上应用 xsl 样式表。
所以我们有 b.xml(由该工具生成)和 Encomp.xml,它们将 b.xml 的内容作为这样的 XML 外部实体导入(如果您想尝试,请在同一文件夹中创建 3 个 xml 文件)
压缩文件
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE document [ <!ENTITY data SYSTEM 'b.xml'>]>
<Root-Element xmlns:log="http://log4net.sourceforge.net/">
&data;
</Root-Element>
b.xml
<log:MyNode Name="Node1"/>
<log:MyNode Name="Node2"/>
<log:MyNode Name="Node3"/>
一个.xml
<MyNode Name="Node1"/>
<MyNode Name="Node2"/>
现在的问题是这种方法适用于 a.xml 之类的内容(其中节点没有使用名称空间限定),但不适用于 b.xml。
我的猜测是,命名空间可能在 DOCTYPE 行未定义,它仅在下一行声明。我怎样才能让它工作?