我知道類似這樣的問題已被提出,但我無法弄清楚我的測試出了什麼問題。測試XSL的缺失屬性
下面是我的XML如何可能的3種變體; 我正在試圖找出<apsite:address>
的值,它是一個空字符串或缺少的元素。
<apsite:apsite xmlns="http://www.w3.org/1999/xhtml" >
<apsite:name>John</apsite:name>
<apsite:address>Some Address</apsite:name>
</apsite:apsite>
<apsite:apsite xmlns="http://www.w3.org/1999/xhtml" >
<apsite:name>John</apsite:name>
<apsite:address></apsite:name>
</apsite:apsite>
<apsite:apsite xmlns="http://www.w3.org/1999/xhtml" >
<apsite:name>John</apsite:name>
</apsite:apsite>
我需要找到值爲空字符串或空值的實例。 這些是我的條件。
<xsl:if
test="../apsite:address = ''">
<dc:source>
<xsl:value-of select="." />
</dc:source>
</xsl:if>
<xsl:if
test="not(apsite:apsite/apsite:address)">
<dc:source>
<xsl:value-of select="." />
</dc:source>
</xsl:if>
<xsl:if
test="../apsite:adress != ''">
<dc:source>
<xsl:value-of select="../apsite:oldAddress" />
</dc:source>
</xsl:if>
我測試空字符串作品,但不是即測試缺少的元素=「沒有(apsite:apsite/apsite:地址)」>不工作。
請問有人能提醒我缺少什麼嗎?
謝謝。
我想你的意思是缺少'元素',而不是缺少'屬性'。您的示例輸入文檔沒有任何屬性。 ' '是一個XML **元素**。 –
嘗試'test =「not(../ apsite:address)」'而不是'test =「not(apsite:apsite/apsite:address)」'。您也可以考慮使用模板,而不是使用xsl:if指令的醜陋鏈。 –
Thanks @ SeanB.Durkin我已經將參數從屬性更改爲元素。沒有試過(../ apsite:地址),結果相同。 – Macky