我被要求编写一些读取 XML 配置文件的脚本,这些脚本可以自由使用 XLink 来包含存储在多个文件中的 XML。例如:
<Environment xlink:href="#{common.environment}" />
(#{common.environment} 是一个属性占位符,它首先被解析,在这里可以忽略。)该公司已经标准化了 lxml,用于在 python 中进行高级 XML 处理。
我一直在寻找有关如何在这些限制下处理这些事件的示例或文档,并且至少将它们的内容包含在父 XML 文档中,就好像它们实际上是在该点插入一样。我有点惊讶地发现那里很少有珍贵的东西,以至于我想知道我是否遗漏了一些明显的东西。我找到了关于 XLink 是什么的通用文档,并且我找到了一些在 XSLT 处理上下文中使用它的示例。但这对我没有帮助。
任何人都可以就如何最好地实现这一点提供任何建议,无论是文档、示例还是经验中的一些建议?谢谢。
更新:这是一个之前和之后的例子:
前。这是正在解析的文件中的实际内容:
<Root>
<Environment xlink:href="#{common.environment}" />
</Root>
这是 #{common.environment} 解析为的文件中的内容:
<?xml version="1.0" encoding="UTF-8"?>
<Environment>
<Property key="hello.world" value="foo" />
<Property key="bar.baz" value="fred" />
</Environment>
后。这是解析器在所有处理完成后“看到”它的方式:
<Root>
<Environment>
<Property key="hello.world" value="foo" />
<Property key="bar.baz" value="fred" />
</Environment>
</Root>
这是那里发生的事情的一个彻底简化的示例。