Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn

由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

XPATH中position()的用法



  • 在OpenERP中,继承视图可以用<field name="xxoo">这样的标签来定位修改点,但对于有些没有名字的元素比如page,就只能用更强大的xpath了。
    但使用xpath有个问题,XPATH 是可以返回一个LIST 的,不过OpenERP 默认只取第一个,如果改其他的元素怎么办?对于最后一个元素,可以用last()函数,还可以用last() - n来定位倒数第几个元素,当然这是有点儿危险的,可能会越界。步科大神分享还可以用position()函数,这样就可以正向定位了。

    比如
    <header>
    <button name="action_quotation_send" string="Send by Email" type="object" states="draft" class="oe_highlight" groups="base.group_user"/>
    <button name="action_quotation_send" string="Send by Email" type="object" states="sent" groups="base.group_user"/>

    这两个按钮就比较坑爹,定位第一个可以有三种办法:

    <xpath expr="//button[@name='action_quotation_send']" position="after">

    <xpath expr="//button[@name='action_quotation_send'][position()=1]" position="after">

    <xpath expr="//button[@name='action_quotation_send'][last()-1]" position="after">





  • 目睹 大神 分享





  • 顶!

    之前为了隐藏按钮用过的笨办法拿出来贻笑大方一下 😉

    <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;xpath expr=&quot;//button[@name=&#039;action_quotation_send&#039; and @states=&#039;draft&#039;]&quot; position=&quot;replace&quot;&gt;&lt;/xpath&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;xpath expr=&quot;//button[@name=&#039;action_quotation_send&#039; and @states=&#039;sent&#039;]&quot; position=&quot;replace&quot;&gt;&lt;/xpath&gt;<br />
    


  • 哈哈 我也是用这种笨办法


  • 管理员

    [quote author=mrshelly link=topic=14508.msg24932#msg24932 date=1382769348]
    赞...............
    参考资料:https://developer.mozilla.org/en-US/docs/XPath/Functions/position
    [/quote]

    xpath 还有很多玩法 😉 谢谢分享。


Log in to reply