2012-08-04 109 views
0

我有通過XSLFO格式化的xml文件。我有以下要求請幫助我我是新來的xslfo。基於計數的顯示消息

<?xml version="1.0" encoding="UTF-16 ?> 
<LINES><LINES_ROW><ATTRIBUTE1> ABCD </ATTRIBUTE1></LINES_ROW></LINES><LINES><LINES_ROW> <ATTRIBUTE1></ATTRIBUTE1></LINES_ROW></LINES> 
<LINES><LINES_ROW> <ATTRIBUTE1>CDEF</ATTRIBUTE1></LINES_ROW></LINES><LINES><LINES_ROW><ATTRIBUTE1>MNOP</ATTRIBUTE1></LINES_ROW></LINES> 

我要的是:如果ATTRIBUTE1不是空的,而不是「ABCD」再算上這些,如果計數大於1只顯示一些消息更大。

+1

如果attribute1不是空的而不是「ABCD」類型的XSL-FO測試。這不是XSL-FO的用途。但是你可以用XSLT來完成。也許你在混淆這兩種技術? – mzjn 2012-08-04 16:10:35

+0

感謝您的更新。在XLFO文件中,我們有一行是否意味着XSLT版本1.0被調用?如果是,請讓我知道如何做我得到的數量.. – user1576154 2012-08-04 22:16:19

+0

這意味着你有一個XSLT 1.0樣式表,顯然是用來產生XSL-FO輸出。你爲什麼不向我們展示樣式表並解釋你卡在哪裏?此外,「*如果屬性1不是空的,而不是'ABCD'則對這些進行計數,如果計數大於1,則顯示一條消息*」不是一個非常明確的要求。 – mzjn 2012-08-05 09:01:16

回答

0
<xsl:template match="/"> 
    <xsl:variable name="matches" select=".//ATRIBUTE1[string-length(normalize-space(.)) &gt; 0 and not(contains(., 'ABCD'))]"/> 
    <xsl:if test="count($matches) &gt; 0"> 
     <xsl:text>Message of your choice</xsl:text> 
    <xsl:if> 
</xsl:template> 

雖然未經測試。