стили маркера списка xslt - PullRequest
       0

стили маркера списка xslt

1 голос
/ 04 августа 2010

Как я могу обрабатывать стили маркеров, отличные от чисел в XSLT.Я хочу нарисовать таблицу (потоковый документ XAML) и разместить строки, как показано ниже.иерархически отступ и специальный стиль маркера.Не используется в (XAML) FlowDocument.

1. Some text.........................
    a. Some text.....................
       [1]. Some text................
           a. Some text again........
              [1]. Som text again....

Источник XML будет показан ниже.

<Root>
    ...
    <Step>
        <Text>First Level</Text>
    </Step>
    <Step>
        <Text>First Level</Text>
        <Step>
            <Text>Second Level</Text>
            <Step>
                <Text>Third Level</Text>
                <Step>
                    <Text>Fourth Level</Text>
                </Step>
            </Step>
        </Step>
    </Step>
    ...
</Root>

Ответы [ 2 ]

0 голосов
/ 06 августа 2010

Просто для удовольствия, эта таблица стилей:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:inc="include">
 <xsl:output method="text"/>
    <xsl:template match="text()"/>
    <xsl:template match="Step">
        <xsl:variable name="level" select="count(ancestor::Step)"/>
        <xsl:value-of select="substring('&#x9;&#x9;&#x9;&#x9;',1,$level)"/>
        <xsl:number format="{concat(
                             substring('[',
                                       1,
                                       $level and $level mod 2 = 0),
                             substring('1a',
                                       $level mod 2 + 1,
                                       1),
                             substring(']',
                                       1,
                                       $level and $level mod 2 = 0))}. "/>
        <xsl:value-of select="concat(Text,'&#xA;')"/>
        <xsl:apply-templates select="Step"/>
    </xsl:template>
</xsl:stylesheet>

Вывод:

1. First Level
2. First Level
    a. Second Level
        [1]. Third Level
            a. Fourth Level
0 голосов
/ 04 августа 2010

Посмотрите на инструкцию <xsl:number.../>.У него есть аргументы для форматирования чисел в разных стилях, которые охватывают буквы и римские цифры.Он доступен как в XSLT1, так и в XSLT2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...