как изменить файл XML с помощью xslt
Мне нужно изменить значение определенного элемента узла в файле xml через xsl. Ниже приведены мои данные xml.
<hospitals>
<hospital>
<department>
<clinic>
<cid>8</cid>
<clinicName>clinic8</clinicName>
<status>1</status>
</clinic>
<clinic>
<cid>9</cid>
<clinicName>clinic9</clinicName>
<status>0</status>
</clinic>
<depId>3</depId>
<departmentName>dental</departmentName>
</department>
<hospId>2</hospId>
<hospitalName>appolo</hospitalName>
</hospital>
<hospital>
<department>
<clinic>
<cid>82</cid>
<clinicName>clinic82</clinicName>
<status>0</status>
</clinic>
<clinic>
<cid>92</cid>
<clinicName>clinic92</clinicName>
<status>0</status>
</clinic>
<depId>4</depId>
<departmentName>mental</departmentName>
</department>
<hospId>2</hospId>
<hospitalName>manipal</hospitalName>
</hospital>
</hospitals>
например, мне нужно выбрать clinic9 на основе его идентификатора, т. е. 9, и изменить статус с 0 на 1
Я пытался так
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="hospId"/>
<xsl:param name="depId" />
<xsl:param name="clinicId"/>
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="hospitals/hospital[hospId='2']/department[depId='3']/clinic[cid='9']">
<xsl:choose>
<xsl:when test="cid ='9'">
<xsl:element name="status">123</xsl:element>
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Но значение не меняется ...