如何在<label for =“street”string =“Address”> </label>之前的xpath字段

时间:2014-03-19 10:17:44

标签: xpath openerp

我想要xpath&#34; field_name&#34;在<label for="street" string="Address"/>之前 但我可以xpath标签:&#39;(

<xpath expr="//label[@for='street']" position="after">  
    <field name="field_name"/>
</xpath

有人请帮助我,谢谢你有时间阅读我的话

2 个答案:

答案 0 :(得分:1)

试试这个,你可以给出像之前,之后的位置,属性

<xpath expr="//label[@string='Address']" position="before">  
    <field name="field_name"/>
</xpath>

OR您可以使用其他方式,例如

<label for="street" position="before">
    <field name="field_name"/>
    <label for="field_name"/>
</label>

答案 1 :(得分:0)

对于这类问题(你没有名字参考),你必须使用路径。假设你的标签是这样的结构:

<form>
    <sheet>
        <div>
            <label string='street'/>
            <label string='postal code'/>
        <div>
    </sheet>
</form>

现在,你需要达到第一个标签,所以你可以这样做:

<xpath expr='//sheet/div/label[1]' position="after">
    <field name="field_name"/>
</xpath>

说明: 使用表达式,我们首先调用我们拥有的第一个工作表的相对路径(//用于相对路径),因此我们可以在代码中的任何位置到达它,其次是该div的绝对路径(/是绝对路径)最后,因为我们需要标签,但我们想要第二个,我们使用[1]来获得它。这个确切的路径并不总是必要的,我只是建议它,因为通常我们有多个div,但只有一张,这就是为什么我把它作为根,但当然你必须适应你自己的结构。有关xpath的更多信息,请阅读https://www.w3schools.com/xml/xpath_syntax.asp