XSLT script for selecting a particular node and remove attribute
I have a xml file, I need to update xml file based on selecting a particular node and removing certain attributes from it.
In the xml file, I need to select node whose validationscenario name = "ABC test" then I need to remove validation whose abc_name is "data_005" and "data_006" only from ABC_test(not from XYZ test)
Input xml:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://abcxyz.com/abc/config" version="0.37">
<validationscenarios>
<validationscenarioslist>
<validationscenario>
<name>ABC test</name>
<validations>
<validation abc_name="data_001" levels="1"/>
<validation abc_name="data_002" levels="2.4"/>
<validation abc_name="data_003" levels="6.0"/>
<validation abc_name="data_004" levels="4.0"/>
<validation abc_name="data_005" levels="2,3"/>
<validation abc_name="data_006" levels="3.5,4.5"/>
</validations>
</validationscenario>
<validationscenario>
<name>XYZ test</name>
<validations>
<validation abc_name="data_001" levels="3.5"/>
<validation abc_name="data_002" levels="5.5"/>
<validation abc_name="data_005" levels="6.5"/>
<validation abc_name="data_006" levels="4.5"/>
</validations>
</validationscenario>
</validationscenarioslist>
</validationscenarios>
</config>
I tried writting the script and reached mid way, I am able to select the node but I am not able to remove the attribute.
my xslt (incomplete) script
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:cc="http://abcxyz.com/abc/config" xmlns="http://abcxyz.com/abc/config" version="1.0">
<xsl:output method="xml" encoding="utf-8" indent="yes" omit-xml-declaration="no" standalone="no"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()|comment()">
<xsl:copy>
<xsl:apply-templates select="@*|node()|comment()"/>
</xsl:copy>
</xsl:template>
<xsl:template match=" /cc:config/cc:validationscenarios/cc:validationscenarioslist/cc:validationscenario/cc:name[contains(.,'ABC test')]">
// not working here //cc:validations/cc:validation[@abc_name='data_005'] //
</xsl:transform>
Comments
Post a Comment