<Level>
<Name>XYZ</Name>
<Number>456</Number>
<DateTime>2020-03-11T08:53:00</DateTime>
</Level>
<Level>
<Name>ABC</Name>
<Number>123</Number>
<DateTime>2020-03-13T08:53:00</DateTime>
</Level>
<Level>
<Name>PQR</Name>
<Number>789</Number>
<DateTime>2020-03-12T08:53:00</DateTime>
</Level>
Insert a new element Value below the element only when Level/Name = ABC
So that result should be as follows:
<Level>
<Name>XYZ</Name>
<Number>456</Number>
<DateTime>2020-03-11T08:53:00</DateTime>
</Level>
<Level>
<Name>ABC</Name>
<Number>123</Number>
<Type>Value</Type>
<DateTime>2020-03-13T08:53:00</DateTime>
</Level>
<Level>
<Name>PQR</Name>
<Number>789</Number>
<DateTime>2020-03-12T08:53:00</DateTime>
</Level>
thanks in advance.
Here's a possible solution.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="Level/Number[../Name='ABC']">
<xsl:copy-of select="."/>
<Type>Value</Type>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
See it working here : https://xsltfiddle.liberty-development.net/6pS26mN/1