gpt4 book ai didi

xslt - 使用 Xsl :value-of is converting & in url into &

转载 作者:行者123 更新时间:2023-12-05 00:38:28 25 4
gpt4 key购买 nike

我有一个类似这样的 xml

<root>
<testxml>
<details name="test" url="http://www.test.com/test.aspx?val=100&val2=200" />
</testxml>
<root>

当我使用 xslt 将此 xml 转换为另一个 xml 时
<xsl:output method="html" indent="yes" encoding="UTF-8"  />

<xsl:template match="root/testxml/details">
<convert>
<xsl:attribute name="url">
<xsl:value-of select="@url"/>
</xsl:attribute>
</convert>

我得到这样的结果输出
<convert url="http://www.test.com/test.aspx?val=100&amp;val2=200">

代替
<convert url="http://www.test.com/test.aspx?val=100&val2=200">

这里的问题是:& in url 正在更改为 & amp; 我怎样才能避免这种情况,我希望 & 在 url 中作为 &.(不是 & amp;)

我试过 <xsl:value-of disable-output-escaping="yes" select="@url" />也但不使用。

任何人都可以请帮我这个..

最佳答案

I get the result output as this

instead of

issue here is: & in url is getting changed to & amp;



没有问题,URL 根本没有改变 :

要验证这一点,请使用如下转换:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>

<xsl:template match="/*">
<xsl:value-of select="@url"/>
</xsl:template>
</xsl:stylesheet>

当此转换应用于以下 XML 文档时:
<convert url="http://www.test.com/test.aspx?val=100&amp;val2=200"/>

结果是 :
http://www.test.com/test.aspx?val=100&val2=200

所以,URL 没有以任何方式改变,仍然只有一个 &其中的性格。

您观察到的是 XML 中某些特殊字符(通常是 <& )的强制转义,如 XML 规范所规定的。

某些特殊字符的转义永远不会改变被转义的字符串的内容 -- 仅当它是 XML 文档的一部分时的样子。

how can i avoid this ,i want & in url as &.(not & amp;)



你不能,如上所示,没有什么可以避免的。

关于xslt - 使用 Xsl :value-of is converting & in url into &amp;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5580658/

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