gpt4 book ai didi

java - XSLT 不向元素添加 XMLNS

转载 作者:行者123 更新时间:2023-11-30 04:41:28 25 4
gpt4 key购买 nike

我有一个与此类似的简单 HTML 片段:

<a href="123">link</a>

我需要将其转换为

<abc:href var="123">link</abc:href>

我使用 XSLT 来完成此操作,因此我必须在 xsl:stylesheet 中添加命名空间

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:abc="http://abc.ru">

它几乎可以正常工作,不幸的是,XSLT 转换不断向输出添加 XMLNS,如下所示:

<abc:href var="123" xmlns:abc="http://abc.ru">link</abc:href>

我不需要 xmlns 定义,可以删除它吗?

最佳答案

虽然这确实违背了原则,而且我强烈建议不要这样做,但如果您需要生成这种格式错误的 XML,那么您可以使用类似的指令...

<xsl:value-of disable-output-escaping="yes" select="
concat('&lt;abc:href var="',$href,'"&gt;',$link,'&lt;/abc:href&gt;')
"/>

...其中 $href 和 $link 是适当表达式的位置标记。

<小时/>

更新

为了回应OP的评论,可以使用这样的模板......

<xsl:template match="a">
<xsl:value-of disable-output-escaping="yes" select="
concat('&lt;abc:href var="',@href,'"&gt;',.,'&lt;/abc:href&gt;')
"/>
</xsl:template>

这个丑陋的解决方案只能作为最后的手段使用。更好的解决方案是使用 XSLT 生成整个文档,而不仅仅是其中的无效片段。这样您的文档就会格式良好,并且您可以发挥 XSLT 的全部功能和简单性。

关于java - XSLT 不向元素添加 XMLNS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12177209/

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