我有以下内容检查xml中的字符串...但是,我需要创建另一个测试来检查第一行变量$validItems
中的'Null'或没有文本...
<xsl:if test="$validItems[(Caption | CalltoAction)[string(.)]]">
<div class="text">
<xsl:choose>
<xsl:when test="$horizontal">
<div class="holder">
<div class="frame">
<div class="slides-descriptions">
<xsl:apply-templates select="$validItems" mode="horizontal"/>
</div>
<div class="switcher"/>
</div>
</div>
</xsl:when>
<xsl:otherwise>
<div class="slides-descriptions">
<xsl:apply-templates select="$validItems" mode="vertical"/>
</div>
<div class="switcher"/>
</xsl:otherwise>
</xsl:choose>
</div>
</xsl:if>
我如何测试变量xsl:if test = $ validItems?
答案 0 :(得分:6)
如果我理解你的要求,
<xsl:if test="$validItems[(Caption | CalltoAction)[not(string(.))]]">
会做到的。换句话说,“如果$ validItems节点集中有一个元素,它有一个字符串值为空的Caption或CalltoAction子元素”。你也可以说
<xsl:if test="$validItems[(Caption | CalltoAction)[. = '']]">
答案 1 :(得分:5)
XPath数据模型中没有“Null”这样的东西。
至于“变量$ validItems中没有文本”,将有助于了解此变量的类型。如果它是单个元素节点(可能从您显示的代码示例中看到),并且您要测试的是它没有文本节点子节点,则测试将为not($ValidItems/text())
。如果您要测试它没有文本节点后代,请尝试not(string($validItems))
或等效$validItems=''
。
答案 2 :(得分:0)
这些答案都不适用于我,我不知道它是否因为我通过ODK xforms使用xpath。我确实使用这个解决方案:
echo 4 > /sys/fs/cgroup/cpu/docker/${ContainerID}/cpu.shares
我已根据日期和数字对此进行了测试。