如何使用XSLT将链接转换为小写

吉姆·梅瓦里德

在我的XML工作流程中,我将其设置为构建指向特定术语的超链接,我们将这些超链接链接到应用程序中的定义。我想将link属性转换为小写字母以标准化命名约定。

XSLT已经通过将多个单词与下划线“ _”连接来创建链接。但是,如何同时将大写单词转换为小写字母呢?

我已经设置了一个变量来转换单词,但是如何将其添加到现有模板中呢?

这是一些示例XML:

<APPENDIX>
    <Subsection>
        <DL>
            <DT>Committee</DT> 
            <DD>The <em>Committee</em> is the appropriate <em>Committee</em> of the <em>Governing Body</em></DD>
            <DT>Golf Skill or Reputation</DT> 
            <DD><text>It is a matter for the <em>Governing Body</em> to decide whether a particular <em>amateur golfer</em> has <em>golf skill or reputation</em>. </text></DD>
            <DT>Governing Body</DT>  
            <DD><text>The <em>Governing Body</em> for the administration of the Rules of Amateur Status in any country is the national golf union or association of that country.  </text></DD>
        </DL>
    </Subsection>
</APPENDIX>

这是将文本转换为链接的XSLT:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" encoding="UTF-8"/>
    <xsl:strip-space elements="*"/>

    <xsl:template match="/">

        <xsl:variable name="smallcase" select="'abcdefghijklmnopqrstuvwxyz'" />
        <xsl:variable name="uppercase" select="''" />

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

    <xsl:template match="em">
        <a href="{concat('#',translate(normalize-space(.), ' ', '_'))}">
            <em><xsl:value-of select="normalize-space(.)"/></em>
        </a>
    </xsl:template>

</xsl:stylesheet>

我已经离开了那个转换模板DLDTDD元素。如果您不需要它们,我将使其保持简单。基本上,这些元素只是按原样带回。

我只需要隐藏链接,例如href="Governing_Body"小写:href="governing_body"

谢谢

明亮的达罗查

如果希望em模板可以显示变量,则需要在顶层声明变量之后,您要做的就是调用concat()另一个内部的现有对象translate,以转换大小写:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" encoding="UTF-8"/>
    <xsl:strip-space elements="*"/>

    <xsl:variable name="smallcase" select="'abcdefghijklmnopqrstuvwxyz'" />
    <xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />

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

    <xsl:template match="em">
        <a href="{translate(concat('#',translate(normalize-space(.), ' ', '_')), $uppercase, $smallcase)}">
            <em><xsl:value-of select="normalize-space(.)"/></em>
        </a>
    </xsl:template>

</xsl:stylesheet>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用XSLT将链接转换为小写

来自分类Dev

如何使用xslt将xml中的文本转换为html中的超链接

来自分类Dev

如何使用xslt将xml中的文本转换为html中的超链接

来自分类Dev

如何使用Powershell脚本将csv转换为小写

来自分类Dev

如何使用OpenJson将JSON列标题转换为小写

来自分类Dev

XSLT将元素名称转换为Pascal大小写

来自分类Dev

如何将XElement转换为小写?

来自分类Dev

如何使用XSLT将xml转换为sql查询?

来自分类Dev

如何使用xslt将嵌套的Json对象转换为xml

来自分类Dev

如何使用XSLT将标签的值转换为纯文本

来自分类Dev

如何使用xslt将xml转换为html表

来自分类Dev

如何使用 XSLT 将 Schema XML 转换为 CSV

来自分类Dev

将目录结构xml转换为链接xslt的html列表

来自分类Dev

使用xslt将xml转换为html

来自分类Dev

使用XSLT将XML转换为JSON

来自分类Dev

使用XSLT将JSON转换为Xml

来自分类Dev

使用XSLT将XML转换为XML

来自分类Dev

使用XSLT将SOAP转换为HTML

来自分类Dev

使用XSLT将XMI转换为XML

来自分类Dev

使用XSLT将USD转换为GPB

来自分类Dev

使用xslt将XML转换为TXT

来自分类Dev

使用 xslt 将 xml 转换为 json

来自分类Dev

如何在记事本++中使用替换正则表达式将小写的文本转换为小写

来自分类Dev

如何在REST API中使用下划线将驼峰大小写转换为小写?

来自分类Dev

XSLT:如何使用XSLT将xml数据转换为分层结构

来自分类Dev

将列表转换为小写

来自分类Dev

将“集合”转换为小写

来自分类Dev

如何使用C#将逗号分隔的字符串转换为小写

来自分类Dev

如何使用Powershell将csv文件转换为小写或大写,以保持其结构?