Вот мой XML-файл:
<?xml version="1.0" encoding="utf-8"?>
<consentException fpmlVersion="5-6" >
<header>
<messageId messageIdScheme="www.test.com">LH_msf_id</messageId>
<inReplyTo messageIdScheme="">2424234243</inReplyTo><!-- message Id of entering party -->
<sentBy>test</sentBy>
<sendTo>SEF1</sendTo>
<creationTimestamp>2010-09-09T10:00:00-00:00</creationTimestamp>
</header>
<correlationId correlationIdScheme="">SEF_correlationId</correlationId>
<reason>
<reasonCode>3500001</reasonCode>
<description>Invalid Currency ABC</description>
</reason>
<reason>
<reasonCode>3500043</reasonCode>
<description>Organization XYZ is not defined</description>
</reason>
</consentException>
Вот мой файл XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="consentException/header/sentBy">
<Hello><xsl:apply-templates select="@*|node()"/></Hello>
</xsl:template>
</xsl:stylesheet>
Здесь код XSLT заменяет тег в файле xml: (тег Hello)
<?xml version="1.0" encoding="UTF-8"?><consentException fpmlVersion="5-6">
<header>
<messageId messageIdScheme="www.test.com/">LH_msf_id</messageId>
<inReplyTo messageIdScheme="">2424234243</inReplyTo><!-- message Id of entering party -->
<Hello>Test</Hello>
<sendTo>SEF1</sendTo>
<creationTimestamp>2010-09-09T10:00:00-00:00</creationTimestamp>
</header>
<correlationId correlationIdScheme="">SEF_correlationId</correlationId>
<reason>
<reasonCode>3500001</reasonCode>
<description>Invalid Currency ABC</description>
</reason>
<reason>
<reasonCode>3500043</reasonCode>
<description>Organization XYZ is not defined</description>
</reason>
</consentException>
Но если бы я хотел, чтобы вы заменили ВСЕ теги в файле XML, а не указывали каждый тег, есть ли лучший способ сделать это?
Я не уверен в этом, но если есть файл, который содержит теги XML и какие теги XML необходимо заменить, может ли он каким-то образом ссылаться на файл с кодом XSLT?
Я пытаюсь найти наиболее оптимальный способ выполнения этой задачи.
Примечание. Замена тегов ДОЛЖНА выполняться только с кодом XSLT.
ОБНОВЛЕНИЕ
Вот как должен выглядеть окончательный XML:
<?xml version="1.0" encoding="utf-8"?>
<consentException fpmlVersion="5-6" >
<header>
<FPHdMsgID FPHdMsgIDScheme="www.test.com">LH_msf_id</FPHdMsgID>
<inReplyTo messageIdScheme="">2424234243</inReplyTo><!-- message Id of entering party -->
<FPHdSentBy>Traiana</FPHdSentBy>
<FPHdSentTo>SEF1</FPHdSentTo>
<FPHdCreateTime>2010-09-09T10:00:00-00:00</FPHdCreateTime>
</header>
<FPCorID FPCorIDSch="">SEF_correlationId</FPCorID>
<reason>
<FPRsnCode>3500001</FPRsnCode>
<FPRsnDesc>Invalid Currency ABC</FPRsnDesc>
</reason>
<reason>
<FPRsnCode>3500043</FPRsnCode>
<description>Organization XYZ is not defined</description>
</reason>
</consentException>