根据元素是否包含文本,为元素设置不同的值

问题描述 投票:0回答:1

我需要不时地为我的老板做一组布局的小路径调整。我对Xpath的了解非常有限,如果我无法全面描述所有内容,请原谅我。

我的问题:

我想为元素“table-title”的行高设置不同的值,具体取决于元素“table-title”是否包含任何文本。我无法检查元素“table-title”是否完全为空,因为它可能包含元素“meta-ref”,即使没有后续文本也是如此。

我使用{ctrl:If(x,'y','z')}来设置基于条件是否满足的值,条件为“x”,如果满足则值为“y”和“ z“如果不满足。这就是我尝试过的:{ctrl:If(table-title[contains(text(),'')],'0.1%','100%')}

我正在使用的代码在</meta-ref>之后没有文本。但为了显示文本的出现位置,我在此处添加了它。

<table-container>
    <table-title>
        <meta-ref @name="Layoutmarker>'TableGrid'</meta-ref>This is a table title text.
    </table-title>
</table-container>

当元素“table-title”中没有文本时,我希望行高为0.1%,有时为100%。我希望结果是0.1%,但它实际上是100%,即使没有文字。

xpath
1个回答
0
投票

很抱歉打开这个问题。我一直在变得绝望,因为我几天都找不到解决方案,但这里是:

{ctrl:If(self::table-title[not(text())],'0.1%','100%')}

当表标题不包含任何文本时,这会成功地将行高减少到0.1%。

© www.soinside.com 2019 - 2024. All rights reserved.