gpt4 book ai didi

xml - 使用 XPath 函数 fn :replace from XSLT

转载 作者:数据小太阳 更新时间:2023-10-29 01:47:49 25 4
gpt4 key购买 nike

我正在尝试使用 XSLT 将简单的 XML 模式转换为 HTML 并计划使用 fn:replace\n 替换返回 ( <p>; ) .但是,我不知道如何正确使用此功能。

我正在使用的 XSLT 的简化版本如下:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:template match="/root">
<html>
<body>
<!-- Replace \n with <p> -->
<xsl:value-of select="fn:replace(value, '\n', '<p>')" />
</body>
</html>
</xsl:template>
</xsl:stylesheet>

这个 XLST 的输入是例如:

<?xml version="1.0"?>

<root>
<value><![CDATA[
Hello
world!
]]></value>
</root>

转换在 fn:replace 上失败带有 NoSuchMethodException。如果我将替换语句更改为

<xsl:value-of select="fn:replace('somestring', '\n', '<p>')" />

我得到一个 IllegalArgumentException。如何使用 fn:replace实现我想要的?

我正在使用 Butterfly XML Editor测试 XSLT。

最佳答案

XPath 2.0 具有替换功能,您可以将其与任何 XSLT 2.0 处理器(如 Saxon 9 或 AltovaXML 工具或 Gestalt)一起使用。您似乎尝试将该功能与 XSLT 1.0 处理器一起使用,但这是行不通的。如果您仅限于 XSLT 1.0 处理器,则需要使用命名的递归模板或借助扩展来实现替换。

但是请注意,即使使用 XSLT 2.0,您尝试使用 replace 似乎是错误的,因为您将生成一个带有“p”标记标记的文本节点,而我假设您想要在结果中创建一个“p”元素节点。因此,即使在 XSLT 2.0 中,使用分析字符串而不是替换也更有可能获得您想要的结果。

关于xml - 使用 XPath 函数 fn :replace from XSLT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2183908/

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