gpt4 book ai didi

xml - XSLT:如何使用文本节点两次?一次有空格又一次没有空格?

转载 作者:数据小太阳 更新时间:2023-10-29 02:27:40 24 4
gpt4 key购买 nike

我使用此模板生成指向 xHTML 文档中“id='{title}'”引用的各个部分的内部链接列表。

<xsl:template match="folder/folder" mode="folderlist">
<li>[<a href="#{title}"><xsl:value-of select="title" /></a>]</li>
</xsl:template>

它有效,但当然不能验证,因为“title”的内容可能包含空格,并且规则规定“id”不能有空格。

假设 {title} 的内容是:'Title with spaces'。

我想要实现的是从 {title} 的内容中删除空格以插入到 href= 中,因此结果如下所示:

<a href="Titlewithspaces">

然后以某种方式再次使用 {title} 的原始内容,因此完整的结果行变为:

<li>[<a href="#Titlewithspaces">Title with spaces</a>]</li>

这可能吗?如果是这样,有人可以告诉我如何实现这一目标吗?谢谢。

最佳答案

一个通用的解决方案(XPath 1.0 和 XPath 2.0 -- 分别是 XSLT 1.0 和 XSLT 2.0)当我们想要用下划线替换任何非字母数字字符时:

<a href="#{translate(., translate(.,$vAlphaNum,''), '_')}">

其中变量 vAlphaNum 被定义为包含所有字母(A-Z 和 a-z)和所有数字 (0-9) 的字符串。

这就是所谓的“双重翻译法”,最早由@Michael Kay 提出。

关于xml - XSLT:如何使用文本节点两次?一次有空格又一次没有空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6990184/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com