<py:match path="foo">
<?python
import os
href = select('@href').render()
SOMEWHERE = ... # what file contained the foo tag?
path = os.path.abspath(os.path.join(os.path.dirname(SOMEWHERE), href)
f = file(path,'r')
# (do something interesting with f)
?>
</py:match>
...
<foo href="../path/relative/to/this/template/abcd.xyz"/>
上面的“某处”应该是什么?我希望该href
属性与其中包含foo
标签的文件相关,就像href
其他标签上的属性一样。
或者,哪个文件包含 py:match 块?这不太好,因为它可能与带有foo
标签的文件位于不同的目录中。
更糟糕的是:我可以提供我正在渲染的文件的路径作为来自 Genshi 外部的上下文参数,但这可能位于与上述两个不同的目录中。