lxml 和 python:如何设置 "global" 个实体

lxml and python: how to set "global" entities

我正在使用 lxml 来解析 python 中的 xml 文件。 xml 的目的是配置我的代码。由于我需要使用许多略有不同的不同配置,因此我使用了 xi:include 功能。

如果能够在 "main" xml 文件中声明一些实体并让包含的实体知道它们,那将非常有用。 这是我的工作示例:

main.xml:

<?xml version="1.0"?>
<!DOCTYPE doc> 
<configuration xmlns:xi="http://www.w3.org/2001/XInclude" name="foo" version="0.1" >
 <xi:include href="./external.xml" />
</configuration>

external.xml:

<?xml version="1.0"?>
<!DOCTYPE doc [
       <!ENTITY bar "example">
       ]>
<objects>
   <object name="&bar;" />
</objects>

我想做的是在main.xml里面声明bar,这样可以吗? 提前致谢, 马特奥

这不是我正在寻找的解决方案,但有点解决了我的问题:

main.xml

<?xml version="1.0"?>
<!DOCTYPE doc>
<configurations>
    <configuration>
    <xi:include href="./external/confs.xml" xpointer="xpointer(/ext/conf1)" />
    </configuration> 

    <configuration>
    <xi:include href="./external/confs.xml" xpointer="xpointer(/ext/conf2)" />
    </configuration> 
</configurations>

confs.xml

<?xml version="1.0"?>
<!DOCTYPE doc[
    <!ENTITY foo "bar">
]>
    <ext>
       <conf1>
           <inc name="apple_&foo;" />   
       </conf1>

       <conf2>
           <inc name="orange_&foo;" />
       </conf2>

    </ext>