Je dois ajouter ou insérer un autre élément et attribut <vat:IRmark Type="generic"/>
après le <DefaultCurrency>
. Et, il y a un certain groupe qui est l'élément <Group>
que j'ai besoin d'ajouter un préfixe. Je l'ai presque fait, mais l'insertion d'élément ne fonctionnait pas. Voici mon fichier de test d'échantillon:Insérer un élément et ajouter un préfixe à l'aide de xslt
ENTRÉE fichier:
<Data>
<Record>
<ID>123-AAA</ID>
<Date>2017-04-23</Date>
<Group>
<Hdr>
<ID>833-AAA</ID>
<DefaultCurrency>GBP</DefaultCurrency>
<Sender>truth</Sender>
</Hdr>
</Group>
</Record>
SORTIE GÉNÉRÉ:
<Data>
<Record xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vat="http://www.govtalk.gov.uk/taxation/vat/vatdeclaration/2" schemaLocation="http://www.govtalk.gov.uk/CM/envelope http://www.govtalk.gov.uk/taxation/vat/vatdeclaration/2">
<ID>123-AAA</ID>
<Date>2017-04-23</Date>
<vat:Group>
<vat:Hdr>
<vat:ID>833-AAA</vat:ID>
<vat:DefaultCurrency>GBP</vat:DefaultCurrency>
<vat:Sender>truth</vat:Sender>
</vat:Hdr>
</vat:Group>
</Record>
RÉSULTATS ATTENDUS:
<Data>
<Record xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vat="http://www.govtalk.gov.uk/taxation/vat/vatdeclaration/2" schemaLocation="http://www.govtalk.gov.uk/CM/envelope http://www.govtalk.gov.uk/taxation/vat/vatdeclaration/2">
<ID>123-AAA</ID>
<Date>2017-04-23</Date>
<vat:Group>
<vat:Hdr>
<vat:ID>833-AAA</vat:ID>
<vat:DefaultCurrency>GBP</vat:DefaultCurrency>
<vat:IRmark Type="generic"/>
<vat:Sender>truth</vat:Sender>
</vat:Hdr>
</vat:Group>
</Record>
Code XSLT:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:vat="http://www.govtalk.gov.uk/taxation/vat/vatdeclaration/2">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()[boolean(normalize-space())]|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="DefaultCurrency">
<xsl:copy-of select="."/>
<vat:IRmark>
<xsl:attribute name="Type">generic</xsl:attribute>
</vat:IRmark>
</xsl:template>
<xsl:template match="*[ancestor-or-self::Group]">
<xsl:element name="vat:{local-name()}">
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
<xsl:template match="Record">
<Record xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vat="http://www.govtalk.gov.uk/taxation/vat/vatdeclaration/2" schemaLocation="http://www.govtalk.gov.uk/CM/envelope http://www.govtalk.gov.uk/taxation/vat/vatdeclaration/2">
<xsl:apply-templates/>
</Record>
</xsl:template>
Merci.
http://lenzconsulting.com/how- xslt-works/# priority a aussi un tableau utile listant les différentes possibilités. –