Ich habe eine eingehende XMl, wo ich Wert eines Attributs ersetzen möchte, wenn es einen bestimmten Wert hat. Das übergeordnete Element des Attributs "Algorithm" ist "Transform", die XML viele solcher Knoten in istErsetzen von Attributwert in XML
Incoming XML:
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="#pfx41d8ef22-e612-8c50-9960-1b16f15741b3">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>yJN6cXUwQxTmMEsPesBP2NkqYFI=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
XSL:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:param name="pNewType" select="'myNewType'"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Transform/@Algorithm[.='http://www.w3.org/TR/2001/REC-xml-c14n-20010315']">
<xsl:attribute name="Algorithm">
<xsl:value-of select="'http://www.w3.org/2001/10/xml-exc-c14n#'"/>
</xsl:attribute>
</xsl:template>
</xsl:stylesheet>
Können Sie bitte lassen Sie mich wissen, was ist das Problem in diesem XSL.
Mögliches Duplikat von [Übereinstimmende Elemente mit Namespacepräfix in XSLT] (https://stackoverflow.com/questions/5100724/matching-elements-with-namespace-prefix-in-xslt) – Filburt
Können Sie mir bitte Bescheid geben. Wie können wir das Problem lösen? – user5458829
Haben Sie den verlinkten Beitrag und die Antworten * gelesen? – Filburt