4

私は Plone で Diazo を使用しており、いくつかの xsl コードが rules.xml のルートで機能していますが、含まれている .xml ファイル内では機能していません。rules.xml をシンプルに保ち、セクション固有のスタイルを各セクションの .xml ファイル内に保持したいと考えています。

section-one.xml の diazo を使用して、クラス「subNav」をすべての li に追加するにはどうすればよいですか?

機能していません(ただし、必要です):

rules.xml

<?xml version="1.0" encoding="UTF-8"?>
<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">

    <rules if-path="section-one/">
        <xi:include href="section-one.xml" />
        <theme href="templates/section-one.html" />
    </rules>

    <rules if-not-path="section-two/">
        <xi:include href="section-two.xml" />
        <theme href="templates/section-two.html" />
    </rules>

</rules>

section-one.xml

<?xml version="1.0" encoding="UTF-8"?>
<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">

    <replace css:content="#content" css:theme="#content"/>
    <xsl:template match="//li">
        <xsl:copy>
            <xsl:attribute name="class">subNav</xsl:attribute>
             <xsl:apply-templates />
         </xsl:copy>
     </xsl:template>
</rules>

作業中(ただし望ましくない):

rules.xml

<?xml version="1.0" encoding="UTF-8"?>
<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">

    <rules if-path="section-one/">
        <xi:include href="section-one.xml" />
        <theme href="templates/section-one.html" />
    </rules>

    <rules if-not-path="section-two/">
        <xi:include href="section-two.xml" />
        <theme href="templates/section-two.html" />
    </rules>
    <xsl:template match="//body[contains(@class, 'section-one')]//li">
        <xsl:copy>
            <xsl:attribute name="class">subNav</xsl:attribute>
             <xsl:apply-templates />
         </xsl:copy>
     </xsl:template>
</rules>

section-one.xml

<?xml version="1.0" encoding="UTF-8"?>
<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">

    <replace css:content="#content" css:theme="#content"/>
</rules>
4

2 に答える 2

0

適切な XSL 属性を使用して各ルール タグを構成します。たとえば、section-one.xml[1] に変更します。

<rules
    xmlns="http://namespaces.plone.org/diazo"
    xmlns:css="http://namespaces.plone.org/diazo/css"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <replace css:content="#content" css:theme="#content"/>
    <xsl:template match="//li">
       <xsl:copy>
          <xsl:attribute name="class">subNav</xsl:attribute>
          <xsl:apply-templates />
       </xsl:copy>
    </xsl:template>
</rules>

[1] これが機能するかどうかはわかりません。そうでない場合は、バグレポートを提出することを検討してください

于 2013-06-19T22:34:55.920 に答える