Какова семантика для XSLT-преобразований нестандартных документов, таких как HTML?

0

Я делаю преобразование XAML в HTML, и я не установил достаточно хорошо, чтобы соответствовать элементам с произвольными атрибутами и как обрабатывать последовательные списки элементов, которые могут иметь разные структуры ниже них, так что

<paragraph fontfamily="times">
 <run></run>
 <list></list>
</paragraph>
<paragraph fontsize="16">
 <run></run>
 <run></run>
 </paragraph>

превратится в

<p><span></span><ul></ul></p>
<p><span></span><span></span></p>
Теги:
xaml
xslt

1 ответ

3
Лучший ответ

XSLT - это язык, основанный на вершинах селекторов XPATH.

В декларативном стиле

<xsl:template match="/">
    <xsl:apply-templates select="/paragraph"/>
</xsl:template>

<xsl:template match="paragraph">
    <p>
        <xsl:apply-templates select="run"/>
        <xsl:apply-templates select="list"/>
    </p>
</xsl:template>

<xsl:template match="paragraph/list">
    <ul>
        ...
    </ul>
</xsl:template>

<xsl:template match="paragraph/run">
    <span>
        ...
    </span>
</xsl:template>

Также вы можете написать его в императивном стиле

<xsl:template match="/">
    <xsl:apply-templates select="/paragraph"/>
</xsl:template>

<xsl:template match="paragraph">
    <p>
        <xsl:for-each select="run">
            <span>
                ...
            </span>
        </xsl:for-each>
        <xsl:for-each select="list">
            <ul>
                ...
            </ul>
        </xsl:for-each>
    </p>
</xsl:template>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню