У меня есть следующий XML-файл:Изменение значения атрибута XML с помощью XSLT
<Book description="for beginners" name="IT Book">
<Available>yes</Available>
<Info pages="500.</Info>
</Book>
Я хочу, чтобы она выглядела так:
<Book description="for pros" name="IT Book">
<Available>yes</Available>
<Info pages="500.</Info>
</Book>
Я посмотрел, как изменить XML-документов надлежащим образом в Интернете. Я узнал, что в первую очередь я должен объявить шаблон для простого копирования все:
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
Однако, я не знаю, как написать шаблон для фактического изменения. Спасибо, что помогли новичкам.
EDIT: Вот мой стилевых до сих пор (по просьбе UL1):
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sig="http://www.w3.org/2000/09/xmldsig#">
<xsl:output indent="yes" method="xml" omit-xml-declaration="yes"/>
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@description='for beginners'">
<xsl:attribute name="{name()}">
<xsl:text>for pros</xsl:text>
</xsl:attribute>
</xsl:template>
</xsl:stylesheet>
добавить еще один шаблон, который соответствует вашей целевой атрибут ' для профи xsl: attribute> xsl: template> ' –