Vous pouvez utiliser l'élément <xsl:attribute>
et l'appliquer directement à (intérieur) l'élément <xsl:copy>
:
<xsl:template match="Component">
<xsl:copy>
<xsl:attribute name="Win64">yes</xsl:attribute>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
Mise à jour: embarqué dans un XSLT qui sinon copie le contenu Xml, cela ressemble à ceci:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Component">
<xsl:copy>
<xsl:attribute name="Win64">yes</xsl:attribute>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Mise à jour 2: Cela suppose que vous voulez seulement ajouter Win64="yes"
à <Component>
éléments. Si ce n'est pas le cas, vous devrez adapter l'expression XPath de l'attribut match
dans le modèle qui insère votre attribut supplémentaire.
Mise à jour 3: documents d'entrée et de sortie bien formés:
Je suppose que ce que le document d'entrée:
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<Component Id="cmp25217AE65B163B199EDDA7F29198730A" Guid="{DEB29383-8BF1-4FD0-830B-DF8639F4069A}"/>
<Component Id="cmp93E1B1FFA5A62A43251E23BD65FBAA66" Guid="{76E8B8CE-835D-498E-9330-CE940C9510BF}"/>
<Component Id="cmp3D7B898C57056B0E87C3A964112BB9D6" Guid="{3BA9A892-C44F-4B2E-B0B9-B732120D35DB}"/>
</xml>
Ensuite, la sortie de l'air XSLT mentionné ci-dessus comme ceci:
<?xml version="1.0" encoding="utf-8"?>
<xml>
<Component Win64="yes" Id="cmp25217AE65B163B199EDDA7F29198730A" Guid="{DEB29383-8BF1-4FD0-830B-DF8639F4069A}" />
<Component Win64="yes" Id="cmp93E1B1FFA5A62A43251E23BD65FBAA66" Guid="{76E8B8CE-835D-498E-9330-CE940C9510BF}" />
<Component Win64="yes" Id="cmp3D7B898C57056B0E87C3A964112BB9D6" Guid="{3BA9A892-C44F-4B2E-B0B9-B732120D35DB}" />
</xml>
Di ne fonctionne pas pour moi ... votre template produit ceci: ' xml version =" 1.0 "encoding =" UTF-8 "?> cmp25217AE65B163B199EDDA7F29198730A {DEB29383-8BF1-4FD0-830B -DF8639F4069A} cmp93E1B1FFA5A62A43251E23BD65FBAA66 {76E8B8CE-835D-498E-9330-CE940C9510BF} cmp3D7B898C57056B0E87C3A964112BB9D6 {3BA9A892-C44F-4B2E-B0B9-B732120D35DB} ' –
@SteveH. - Quel processeur utilisez-vous? Avez-vous d'autres modèles dans votre XSLT? Cela a bien fonctionné pour moi. (+1) –
Cette sortie provenait de XMLSpy. Peut-être que Saxon serait différent, je pourrais essayer avec ça. –