Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xpath 对于每个无结果文本_Xpath_Foreach - Fatal编程技术网

Xpath 对于每个无结果文本

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

我有一个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> 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块之外。