【发布时间】:2021-08-26 06:56:06
【问题描述】:
我目前在 Oracle 10g (10.2.0.4.0) 上使用 XSLT 在 XML 上添加命名空间前缀时遇到以下问题。
SELECT XMLTRANSFORM(XMLTYPE('<EMP xmlns:xsd="http://lgi/vitria/wil/xsd">
<FIRST_NAME>680394-catv</FIRST_NAME>
<LAST_NAME>1414145</LAST_NAME>
<PHONE>0522222532</PHONE>
</EMP>
'),XMLTYPE('<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsd="http://lgi/vitria/wil/xsd">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*" >
<xsl:element name="xsd:{local-name()}">
<xsl:apply-templates select="@* | node()"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>')) from dual
**Expected Output:**
<xsd:EMP xmlns:ns0="http://test">
<xsd:FIRST_NAME>680394-catv</xsd:FIRST_NAME>
<xsd:LAST_NAME>1414145</xsd:LAST_NAME>
<xsd:PHONE>0522222532</xsd:PHONE>
</xsd:EMP>
**Current Output :**
<EMP>
<FIRST_NAME>680394-catv</FIRST_NAME>
<LAST_NAME>1414145</LAST_NAME>
<PHONE>0522222532</PHONE>
</EMP>
我检查了更高版本的 10g(10.2.0.5.0),它按预期工作。在 10g(10.2.0.4.0) 上进行这项工作的最佳解决方案是什么
【问题讨论】:
标签: xml xslt oracle10g xslt-2.0 xslt-3.0