如何修复此 XSL 代码片段以仅在传递数据时显示信息?

How can I fix this XSL snippet to only display information if data is being passed?

提问人:Scott Hallmark 提问时间:8/17/2023 最后编辑:Scott Hallmark 更新时间:8/17/2023 访问量:29

问:

我有以下 XSL 片段,它从组件中的数据中提取链接。

<div class="announcements__cta">
<a href="{$href1}" class="cta cta--link"><xsl:value-of select="$label1"/></a></div>

如果没有 URL,有没有办法编写和 if/else 将这段代码从显示中排除?

我对 XSL 非常陌生,所以我没有尝试过任何东西,因为我不确定从哪里开始。我有权编辑正在解析数据的 XML,并且我已将链接设置为可选;但是,它在执行时仍然会遇到。

if-statement xslt xml 解析

评论

0赞 michael.hor257k 8/17/2023
请发布一个最小的可重复示例,而不是断章取义的代码片段。
0赞 Scott Hallmark 8/18/2023
对于在没有上下文的情况下发布代码,我深表歉意。那不是我的本意。
0赞 michael.hor257k 8/18/2023
你的问题得到解答了吗?
0赞 Scott Hallmark 8/25/2023
是的,谢谢

答:

0赞 michael.hor257k 8/17/2023 #1

通常,仅当某些节点存在时,才有 2 种写入输出的方法:

  1. 使用与节点匹配的模板。如果节点不存在, 模板不会被实例化;

  2. 使用以下构造:

    <xsl:if test="some-node">
       <some-output/>
    </xsl:if>