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>
我正在使用 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>