gpt4 book ai didi

xml - OSB 中命名空间修改的 XSLT - 命名空间前缀奇怪?

转载 作者:行者123 更新时间:2023-12-04 17:00:27 25 4
gpt4 key购买 nike

在 Oracle Service Bus 10gR3 中运行 XSLT 转换时,输出 XML 的显示方式与使用标准 XSLT 处理器时的显示方式不同。

输入 XML:

<given xmlns="http://www.sample.co.uk/version/6">  
<child>content here</child>
</given>

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

<xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:template match="*" >
<xsl:element name="{local-name()}" namespace="{concat(substring-before(namespace-uri(), '/6'),'/7')}" >
<xsl:apply-templates />
</xsl:element>
</xsl:template>

</xsl:stylesheet>

输出 XML:
<ns1537:given xmlns:ns1537="http://www.sample.co.uk/version/7">
<ns1538:child xmlns:ns1538="http://www.sample.co.uk/version/7">content here</ns1538:child>
</ns1537:given>

如您所见,每个节点都被分配了不同的增量前缀?而且,命名空间属性是否包含在每个不同的节点中?我希望输出 XML 如下:
<given xmlns="http://www.sample.co.uk/version/7">
<child>content here</child>
</given>

谁能解释为什么 OSB 的 XSLT 处理器产生如图所示的输出?我该怎么做才能获得没有命名空间前缀等的预期输出?

提前致谢,
下午。

最佳答案

如果它定义了命名空间前缀,它会有什么不同。只要元素由适当的命名空间限定。此外,命名空间前缀使人们更容易阅读 xml。因为 OSB 创建的 XML 没有任何问题,不,您无法删除前缀。您应该阅读此 Namespaces in XML 1.1 .

关于xml - OSB 中命名空间修改的 XSLT - 命名空间前缀奇怪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22984447/

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