Xpath 对于每个无结果文本
我有一个for-each,当它没有任何输出时,我想显示一些默认文本 如果我有Xpath 对于每个无结果文本,xpath,foreach,Xpath,Foreach,我有一个for-each,当它没有任何输出时,我想显示一些默认文本 如果我有 <xsl:for-each select='xpath'> Some content for each matching element result. </xsl:for-each> 每个匹配元素结果的一些内容。 我想要的是: <xsl:for-each select='xpath'> <xsl:output-this-when-there-is-content&g
<xsl:for-each select='xpath'> Some content for each matching element result. </xsl:for-each>
每个匹配元素结果的一些内容。
我想要的是:
<xsl:for-each select='xpath'>
<xsl:output-this-when-there-is-content> Some content for each matching element result. </xsl:output-this-when-there-is-content>
<xsl:no-results-output> Some content for when the for-each finds no matches. </xsl:no-results-output>
</xsl:for-each>
每个匹配元素结果的一些内容。
当for each未找到匹配项时的某些内容。
有人能告诉我怎么做吗
谢谢
马特假设您有:
<xsl:for-each select="xpath"> ...
假设你有:
<xsl:for-each select="xpath"> ...
我认为这样的事情会很好:
If (x!=null)
{
console.write("Default Text")}
else
{
foreach (var y in x)
{
Console.Writeline(y);
//...
}
}
我认为这样的事情会很好:
If (x!=null)
{
console.write("Default Text")}
else
{
foreach (var y in x)
{
Console.Writeline(y);
//...
}
}
为了避免Greg Beech提出的
解决方案过于冗长,您可以执行以下操作:
<xsl:variable name="elems" select="xpath"/>
<xsl:for-each select="$elems">
<!-- ... -->
</xsl:for-each>
<xsl:if test="not($elems)">
<xsl:text>Some default text</xsl:text>
</xsl:if>
一些默认文本
是为了提高效率,它避免了两次执行相同的查询
仅在$elems
中有任何节点时运行,
仅在没有节点时运行。为了避免Greg Beech提出的
解决方案的冗长,您可以执行以下操作:
<xsl:variable name="elems" select="xpath"/>
<xsl:for-each select="$elems">
<!-- ... -->
</xsl:for-each>
<xsl:if test="not($elems)">
<xsl:text>Some default text</xsl:text>
</xsl:if>
一些默认文本
是为了提高效率,它避免了两次执行相同的查询
仅在$elems
中有任何节点时运行,
仅在没有节点时运行。对不起,我不够具体。如果我有。。。每个匹配元素结果的一些内容。我想要的是:每个匹配元素结果的一些内容。当for each未找到匹配项时的某些内容。对不起,我说得不够具体。如果我有。。。每个匹配元素结果的一些内容。我想要的是:每个匹配元素结果的一些内容。当for each未找到匹配项时的某些内容。谢谢,这正是我需要的。有比两次测试xpath查询更快的方法吗?谢谢,我没有考虑使用变量来存储测试结果:)将变量放在choose块之外。谢谢,这正是我需要的。有比两次测试xpath查询更快的方法吗?谢谢,我没有考虑使用变量来存储测试结果:)将变量放在choose块之外。