我正在为构建Docbook文档制作SCons文件。为了跟踪依赖关系,我想用某种方法将目录文件查找解析为文件的绝对路径。Python LXML目录查找
所以说我有一点的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字符串没有问题,但我被困那里。 我需要的是获取文件的绝对文件名:///common/logo.xml从目录文件中解析到(在本例中是/home/kst/svn/TOOLS/Docbook/common/logo.xml) 。它需要是某种Python代码,所以我可以在SConstruct文件中使用它,而不用太麻烦。
任何帮助表示赞赏。
我一直在试图做到这一点,但我一直未能得到它的工作。请注意,我对验证文档不感兴趣,但是获取文档包含的任何xml文件的文件名,因此取决于。 –
据我所知,它不仅适用于验证,也适用于xinclude解析。你怎么试试它?你有没有得到任何具体的错误? – Steven
@凯文Steffensen:我刚刚测试了一个简单的例子,并且包含目录的xinclude似乎工作得很好?看起来文件位置或xpointer(它需要一个id为“logo”的属性,我在测试中使用了'xml:id =“logo”''''''''''''尝试不使用xpointer来检查是否可以先包含整个文档,然后继续使用xpointer) – Steven