【问题标题】:How to access text content using Xpath in Odoo15如何在 Odoo15 中使用 Xpath 访问文本内容
【发布时间】:2022-10-05 02:10:32
【问题描述】:

我正在使用 Odoo15,并且正在尝试访问以下 XML 代码中的文本内容:

<div t-if="record.type.raw_value == 'product'">
   On hand:  
  <field name="qty_available"/>
  <field name="uom_id"/> 
</div>

我曾尝试使用//div/text()//div[contains(text(), 'On hand: ')],但这不起作用。谁能帮我?

【问题讨论】:

  • 结果/错误是什么? did not work 描述性不够。这是整个 XML/页面/文档中唯一的 div 吗?
  • 对于第一个,更新模块时出现以下错误:odoo.tools.convert.ParseError: while parsing file:/f:/odoo%2015.0.20220206/odoo15/custom/commercial/views/product_views.xml:28 ,在里面的某个地方......对于第二个,我在更新模块时没有收到错误,但是当我访问视图时它说:元素不能位于父视图中

标签: xml xpath odoo-15


【解决方案1】:

首先,确保有有效的 xml。

//div/text()

将从所有 div 中选择所有 text()-nodes,以及仅包含空格的 text()-nodes。

//div[contains(text(), 'On hand: ')]

当 div-element 包含多个 text()-node 并且 contains()-function 的第一个参数只能是一个字符串时,可能会失败。

根据该 div 内容的变化,您可以使用:

//div[contains(., 'On hand: ')]

将选择任何具有字符串'On hand:'的div

//div[contains(text()[1], 'On hand: ')]

将选择具有第一个 text()-node 的任何 div,该节点包含字符串'On hand:'

//div/text()[contains(., 'On hand: ')]

将选择作为 div 的直接子节点且包含字符串 'On hand:' 的任何 text()-node

//div/text()[normalize-space()]

将仅选择 text()-nodes 是 div 的直接子节点,其中包含的不仅仅是空格

【讨论】:

    猜你喜欢
    • 2013-11-14
    • 1970-01-01
    • 2019-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    • 2017-05-24
    相关资源
    最近更新 更多