Ich möchte ändern Atrribute Wert und ersetzen Sie eine Teilzeichenfolge des Elements mit XSL.XSL: Wie ersetzen Zeichenfolge und ändern Attributwert
XML
<...>
<communication type="telephone">123 456 789 </communication>
<communication type="telephone">789 (EXT)</communication>
<communication type="telephone">123 456 789 </communication>
</...>
sollte
<...>
<communication type="telephone">123 456 789 </communication>
<communication type="ext">789</communication>
<communication type="telephone">123 456 789 </communication>
</...>
XSL (2,0)
<xsl:template match="communication[@type='telephone'][contains(text(),'(EXT)')]">
<xsl:copy>
<xsl:value-of select="replace(., '(EXT)', '')"/>
<xsl:attribute name="extension">true</xsl:attribute>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
Saxxon heißt „ein Attributknoten kann nicht creat sein ed nach einem Kind des enthaltenden Elements "
Ich habe nicht erreicht, den Wert des Attributtyps zu ändern, also habe ich ein neues Attribut erstellt. Aber selbst mit dieser Problemumgehung habe ich keine Idee, wie beide Anforderungen (Attribut hinzufügen UND Teilstring entfernen) funktionieren.
Jede Idee, die dies löst, wird sehr geschätzt!
Ihr Titel sagt „* Änderung Attributwert *“ und die Ausgabe zeigt, dass Sie den Wert des 'Baumuster zur ändern möchten Attribut von "Telefon" zu "ext". Aber Ihr Code fügt ein neues 'extension' Attribut hinzu. Welches ist richtig? –
Entschuldigung dafür. Ich wollte ein weiteres Attribut "Erweiterung" mit demselben Wert hinzufügen. – user1491184