根据元素是否包含文本,为元素设置不同的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据元素是否包含文本,为元素设置不同的值相关的知识,希望对你有一定的参考价值。
我需要不时地为我的老板做一组布局的小路径调整。我对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%
,即使没有文字。
答案
很抱歉打开这个问题。我一直在变得绝望,因为我几天都找不到解决方案,但这里是:
{ctrl:If(self::table-title[not(text())],'0.1%','100%')}
当表标题不包含任何文本时,这会成功地将行高减少到0.1%。
以上是关于根据元素是否包含文本,为元素设置不同的值的主要内容,如果未能解决你的问题,请参考以下文章