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>
4

1 回答 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>
于 2013-11-12T09:10:54.167 回答