为元素设置不同的值,具体取决于它是否包含文本

时间:2019-04-09 10:48:53

标签: xpath

我需要不时对我的老板的一组布局进行小的xpath调整。我对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%,即使没有文本也是如此。

1 个答案:

答案 0 :(得分:0)

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

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

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