我正在尋找一種簡單的方法來使XSLT在嘗試訪問不存在的源XML中的屬性(或元素)時拋出錯誤。 目前我要做的就是第一次檢查,如果一個屬性存在,並且手動拋出一個錯誤,如果它不 - 如: 如果某個屬性或元素不存在,是否有辦法使XSLT引發錯誤?
<xsl:if test="not(attribute_to_use)">
<xsl:message terminate="yes">
<xsl:text>error message</xsl:text>
</xsl:message>
</xsl:if>
<!-- do something -->
<xsl:attribute name="new_attribute"><xsl:value-of select="attribute_to_use" /></xsl:attribute>
我發現了很多的代碼來檢查的屬性 - 尤其是如果你這樣做爲所有屬性。 是否有任何其他方式在XSLT中執行此操作 - 例如,通過設置像「在非現有屬性上中止」的指令?
我知道這樣做的一種方法是使用DTD或架構,如果沒有直接的XSLT方式,我會這樣做。
非常感謝!