如何使用Genshi中的Transformer在其父标记之前插入HTML标记?

时间:2013-10-31 15:46:29

标签: trac transformer genshi

我需要通过创建一个实现ITemplateStreamfilter类的类来修改我的trac浏览器视图中的文件表。我尝试使用Transformer中的genshi.filters.transform。我的表看起来像

<tbody>
<tr class="even">
<td class="name">
<a class="partent" title="Parent Directory" ..>..</a>
</td>
..
</tr>
..
</tbody>

我现在需要在表格第一行的frist单元格之前插入</td>标记。问题是我只能通过搜索“父目录”标题来识别我想要放置新单元格的列的位置:Transformer('//*[@title="Parent Directory"]')。如何将第一个标记放在第一个<td class="name">标记之前?

1 个答案:

答案 0 :(得分:1)

我对XPATH的{​​{1}}的支持并不熟悉但是

怎么样? Transformer然后使用Transformer('(//td[*[@title="Parent Directory"]])[1]')方法?

据我了解,这应该选择带有属性before的子节点的第一个 td节点。

如果您要选择使用此类子节点的任何 title="Parent Directory" td

但是,只有在 Transformer('//td[*[@title="Parent Directory"]]')支持Transformer个表达式时才有效。

修改1

如果您确定,XPATHtd属性,您也可以使用class="name"