【问题标题】:What is the best way to create xslt dynamically from xhtml?从 xhtml 动态创建 xslt 的最佳方法是什么?
【发布时间】:2013-01-12 20:14:08
【问题描述】:

我有一个 XHTML 模板。我想将 xhtml 文件动态转换为 xslt 。最好的方法是什么? 下面写了XHTML的内容

<div>
{:header:}
<br />
{:date:}
<p>
{:mailingattn:} <br />
{:facilityname:} <br />
{:facilitystreet:} <br />
{:facilitystreet2:} <br />
{:facilitycity:}, {:facilitystate:}  {:facilityzip:} <br />
{:facilitycountry:}
</p>

<p>
{:message:}
</p>

<p>
Sincerely,<br />
{:signature:}
</p>
{:footer:}
</div>

【问题讨论】:

    标签: asp.net xslt xhtml


    【解决方案1】:

    我不确切知道 XHTML 文件中使用的宏的语义,但以下转换会生成一个 XSLT 样式表,希望它是等效的,如果不是,应该很容易根据您的需要进行定制:

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="2.0"
                    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                    xmlns:xs="http://www.w3.org/2001/XMLSchema">
    
        <xsl:template match="*">
            <xsl:copy>
                <xsl:copy-of select="@*"/>
                <xsl:apply-templates/>
            </xsl:copy>
        </xsl:template>
    
        <xsl:template match="/">
            <xsl:element name="xsl:stylesheet">
                <xsl:attribute name="version" select="'2.0'"/>
                <xsl:element name="xsl:template">
                    <xsl:attribute name="match" select="'/*'"/>
                    <xsl:apply-templates/>
                </xsl:element>
            </xsl:element>
        </xsl:template>
    
        <xsl:template match="text()">
            <xsl:variable name="regex">\{:([a-zA-Z0-9]*):\}</xsl:variable>
            <xsl:analyze-string select="." regex="{$regex}">
                <xsl:matching-substring>
                    <xsl:element name="xsl:value-of">
                        <xsl:attribute name="select" select="regex-group(1)"/>
                    </xsl:element>
                </xsl:matching-substring>
                <xsl:non-matching-substring>
                    <xsl:value-of select="."/>
                </xsl:non-matching-substring>
            </xsl:analyze-string>
        </xsl:template>
    
    </xsl:stylesheet>
    

    【讨论】:

    • 谢谢 Michael.. 请告诉我如何在我的模板中使用这种格式?
    • 对不起,我不明白这个问题。
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-10
      • 2020-03-03
      • 2015-06-14
      • 2017-08-06
      • 2013-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多