Исходное сообщение:XSLT Чтобы изменить пространство имен - Совместимость версий
XSLT to change namespace in element
Сво относительно моей ранее пост с программой XSLT для замены имен. Я ответил на этот вопрос, но при тестировании с моей системой он показывает ошибку, поскольку прикладная система i поддерживает работу версии 1.0.
. Нужна какая-либо помощь, чтобы сделать код совместимым с версией 1.0. Ниже XSL:
<xsl:stylesheet
version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsd="http://www.xx.com"
xmlns:ns="http://www.mnv.com/elc/sap"
exclude-result-prefixes="ns">
<xsl:output encoding='UTF-8' indent='yes' method='xml'/>
<!-- copy everything into the output -->
<xsl:template match='@*|node()'>
<xsl:copy>
<xsl:apply-templates select='@*, node()'/>
</xsl:copy>
</xsl:template>
<!-- template to match ns:IRenvelope element and creating a new element -->
<xsl:template match="ns:IRenvelope">
<xsl:element name="IRL" namespace="http://www.xx.com">
<xsl:apply-templates select="@*, node()"/>
</xsl:element>
</xsl:template>
<!--
template to change the namespace
of the elements
from "http://www.mnv.com/elc/sap"
to "http://www.xx.com"
-->
<xsl:template match="ns:*">
<xsl:element name="{local-name()}" namespace="http://www.xx.com">
<xsl:apply-templates select="@*, node()"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
мой XML-сообщение будет:
<GMessage xmlns="http://www.giffgaff.uk/CM/envelope">
<EnvelopeVersion>2.0</EnvelopeVersion>
<body>
<IRenvelope xmlns="http://www.mnv.com/elc/sap">
<Keys>
<Key Type="TaxOfficeNumber">635</Key>
</Keys>
</IRenvelope>
</body>
</GMessage>
ожидаемый результат:
<?xml version="1.0" encoding="UTF-8"?>
<GMessage xmlns="http://www.giffgaff.uk/CM/envelope">
<EnvelopeVersion>2.0</EnvelopeVersion>
<body>
<IRL xmlns="http://www.xx.com">
<Keys>
<Key Type="TaxOfficeNumber">635</Key>
</Keys>
</IRL>
</body>
</GMessage>
Спасибо. Это сработало ..... Пожалуйста, можете ли вы помочь в том, как иметь пространство имен как: в xml? –
Возможно, вам лучше задать новый вопрос, так как я не совсем уверен, в чем проблема. Благодарю. –