我正在制作一个 SCons 文件来构建 Docbook 文档。为了跟踪依赖关系,我想要某种方法将目录文件查找解析为文件的绝对路径。
所以说我有一点 Docbook XML:
<book xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude">
<info>
<title>Docbook example document</title>
<xi:include href="file:///common/logo.xml"
xpointer="logo"/>
</info>
<xi:include href="chap1/chap1.xml"/>
<xi:include href="chap2/chap2.xml"/>
<xi:include href="chap3/chap3.xml"/>
<xi:include href="chap4/chap4.xml"/>
</book>
和一个 catalog.xml 文件:
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<rewriteURI
uriStartString="file:///stylesheet/"
rewritePrefix="file:///home/kst/svn/TOOLS/Docbook/stylesheet/" />
<rewriteURI
uriStartString="file:///common/"
rewritePrefix="file:///home/kst/svn/TOOLS/Docbook/common/" />
<nextCatalog catalog="/etc/xml/catalog" />
</catalog>
使用 lxml 获取 xinclude href 字符串没有问题,但我被困在那里。我需要某种方法从目录文件中获取 file:///common/logo.xml 解析为的绝对文件名(在本例中为 /home/kst/svn/TOOLS/Docbook/common/logo.xml)。它需要是某种 Python 代码,这样我就可以在我的 SConstruct 文件中使用它而不会太麻烦。
任何帮助表示赞赏。