gpt4 book ai didi

XSLT 正在将我的十六进制属性转换为其他内容,我该如何阻止它?

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

我正在尝试将一个 xml 文件转换为另一个 xml 文件,我需要属性“account”的输出与它在下面的显示方式相同。我在文件中有一堆这些值,大多数都不起作用。

对于像 0x0406 这样的帐户值,它输出为 0.0.06。但是对于像 0x002d 这样的值,它让它们单独存在,它们按照我想要的方式出现。

有什么想法吗?

初始 XML:

<?xml version="1.0" encoding="UTF-8"?>
...
<foo account="0x0406" other-stuff="blah" something-name="blah again"/>
...

这是我的 xslt 模板:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:user="http://some-internal-thing/user">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/>
...
<xsl:attribute name="account"><xsl:value-of select="@account"/></xsl:attribute>
...

最佳答案

描述的问题无法重现

我已经使用 10 个不同的 xslt 处理器(Msxml3、Msxml4、Msxml6、.NET XslTransform、.NET XslCompiledTransform、AltovaXml(对于 XSLT 1.01.0)、Saxon6.5.4、Saxon)运行了以下转换9.1.07、Saxon 9.1.07.NET 和 XML-SPY-XSLT2.0)并且它们都产生相同的正确结果

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:user="http://some-internal-thing/user">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/>

<xsl:template match="/*">
<xsl:copy>
<xsl:attribute name="account"><xsl:value-of select="@account"/></xsl:attribute>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>

当对以下 XML 文档执行此转换时:

<?xml version="1.0" encoding="UTF-8"?>
<foo account="0x0406" other-stuff="blah" something-name="blah again"/>

产生了预期的正确结果:

<foo account="0x0406" />

如果您的 XSLT 处理器不是其中之一,并且您真的得到了错误的结果,那么这是一个错误,应该报告给供应商。

关于XSLT 正在将我的十六进制属性转换为其他内容,我该如何阻止它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3348152/

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