Я хочу удалить узел с условием, если статус в телефоне не равен 'A'
Это мой xml
<name>
<name>
<firstName>Yuio</firstName>
<lastName>Kuyoshitu</lastName>
<telephoneNav>
<detail>
<action>A</action>
<number>1745</number>
</detail>
<detail>
<action>P</action>
<number>1189</number>
</detail>
</telephoneNav>
</name>
<name>
<firstName>Huio</firstName>
<lastName>Kuyoshitu</lastName>
<telephoneNav>
<detail>
<action>P</action>
<number>0902</number>
</detail>
<detail>
<action>P</action>
<number>0901</number>
</detail>
</telephoneNav>
</name>
</name>
Если у узла имени нет номера телефона с A
статус. Я хочу удалить имя узла
Это ожидаемый результат
<?xml version="1.0" encoding="utf-16"?><name>
<name>
<firstName>Yuio</firstName>
<lastName>Kuyoshitu</lastName>
<telephoneNav>
<detail>
<action>A</action>
<number>1745</number>
</detail>
</telephoneNav>
</name>
Я пытаюсь этот код.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/name/name/telephoneNav/detail[not(action = 'A')]"/>
<xsl:template match="/name/name/telephoneNav/text()[not(normalize-space())]"/>
</xsl:stylesheet>
Но я все еще получил имя узла с пустым telephoneNav
Это мой результат
<?xml version="1.0" encoding="utf-16"?><name>
<name>
<firstName>Yuio</firstName>
<lastName>Kuyoshitu</lastName>
<telephoneNav>
<detail>
<action>A</action>
<number>1745</number>
</detail>
</telephoneNav>
</name>
<name>
<firstName>Huio</firstName>
<lastName>Kuyoshitu</lastName>
<telephoneNav />
</name>
</name>