2
我在使用XSL將XML顯示格式化爲HTML時遇到問題。XML/XSLT轉換邏輯/如果聲明/隱藏某些行
我有下面的XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Send_Email>
<Send_Email_lookupID>HIDE_REJECT</Send_Email_lookupID>
<Error_Message>REJECT1</Error_Message>
<Error_Message>REJECT2</Error_Message>
<Error_Message>REJECT3</Error_Message>
</Send_Email>
而且XSL:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>Result</h2>
<table border="1">
<xsl:for-each select="/Send_Email">
<xsl:if test="not(/Send_Email_lookupID)">
<tr>
<td><xsl:value-of select="*"/></td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
這行總是靜態的,應該被隱藏:
<Send_Email_lookupID>HIDE_REJECT</Send_Email_lookupID>
下一組線可能每次都會有所不同,但都需要顯示。
任何人都可以幫助我嗎?
在此先感謝。
更新 - 正確的解決方案
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>Result</h2>
<table border="1">
<xsl:for-each select="Send_Email/*[local-name()!='Send_Email_lookupID']">
<tr>
<td><xsl:value-of select="."/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
如果要根據節點的值隱藏,請使用>。 –
Nat
2012-04-11 21:46:12
它仍然爲我返回null。我將在原始問題中發佈新的XSLT。 – gp80586 2012-04-11 22:04:03
對不起 - 錯字 - 應該是'select =「。」' - 我修復了我的答案 – MiMo 2012-04-11 22:20:26