深談 Diazo
一、在rules宣告加上以下這行namespace,
xmlns:xi="http://www.w3.org/2001/XInclude"
變成:
<rules
xmlns="http://namespaces.plone.org/diazo"
xmlns:css="http://namespaces.plone.org/diazo/css"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xi="http://www.w3.org/2001/XInclude">
之後就可以xi:include的方式將另一個xml檔案包含進來,例如:
<rules if="$ismanager">
<xi:include href="another.xml" />
</rules>
二、另外,XSL的語法,只會在第一層的rules生效,不能存在第二層rules裏,但是有變通的方式
<replace css:content="ul#portlet-test">
<xsl:copy>
<xsl:attribute name="class">class1 class2</xsl:attribute>
<xsl:copy-of select="@*" />
<xsl:apply-templates />
</xsl:copy>
</replace>
將其包在另一個replace(或其他diazo tag)裏,就可以不受第一層rules的限制
三、XSL在diazo裏有做一些改良,所以不只支援xpath,加上css以後,還能支援css selector,例如:
<xsl:template css:match="ul.list li">
<xsl:for-each css:select="div#content">
善加利用,rules.xml可以寫得更優雅、易讀。