Odoo 中文社区

    • 注册
    • 登录
    • 搜索
    • 版块
    • 标签
    • 热门
    • 用户
    • 群组

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

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

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

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

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

    XPATH中position()的用法

    Odoo 开发与实施交流
    6
    7
    8756
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • wjfonhand
      wjfonhand 最后由 编辑

      在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">



      GoodERP -- Odoo China fork

      1 条回复 最后回复 回复 引用 0
      • C
        ccdos 最后由 编辑

        目睹 大神 分享

        1 条回复 最后回复 回复 引用 0
        • mrshelly
          mrshelly 最后由 编辑

          赞...............
          参考资料:https://developer.mozilla.org/en-US/docs/XPath/Functions/position

          1 条回复 最后回复 回复 引用 0
          • Y
            youring 最后由 编辑

            顶!

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

            <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 />
            
            1 条回复 最后回复 回复 引用 0
            • W
              wang 最后由 编辑

              哈哈 我也是用这种笨办法

              1 条回复 最后回复 回复 引用 0
              • Joshua
                Joshua 管理员 最后由 编辑

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

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

                【上海先安科技】(joshua AT openerp.cn),欢迎关注公众号:openerp_cn

                1 条回复 最后回复 回复 引用 0
                • First post
                  Last post