【问题标题】:Is it possible to force XSLT transformation to fail if an element does not exist?如果元素不存在,是否可以强制 XSLT 转换失败?
【发布时间】:2018-01-08 00:45:41
【问题描述】:

我们正在使用 XSLT 样式表从大型 XML 文件中提取数据并将其写入 CSV 文件。

将值写入 CSV 的代码通常如下所示:

...
<xsl:value-of select="$quote"/>
<xsl:value-of select="pbs:code"/>
<xsl:value-of select="$quote"/>
<xsl:value-of select="$delimiter"/>
...

如果输入的 XML 不是预期的格式,我真的希望转换失败。 如果缺少元素(即样式表所期望的元素),是否有任何方法可以强制转换失败?

【问题讨论】:

    标签: xml xslt value-of


    【解决方案1】:

    检查元素是否存在有两种可能:

    在您的情况下,第二个变体将是最佳选择。
    所以像这样使用&lt;xsl:message&gt;terminate="yes" 属性:

    ...
    <xsl:if test="not($qoute)">
      <xsl:message terminate="yes">
        ERROR: $quote is not present!
      </xsl:message>
    </xsl:if>
    <xsl:value-of select="$quote"/>
    ...
    

    如果$quote 不是有效元素,这将使用给定的错误消息中断 XSLT 转换。

    【讨论】:

      猜你喜欢
      • 2011-11-05
      • 2018-12-21
      • 1970-01-01
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多