2017-10-09 5 views
0

J'ai ci-dessous fichier xml qui vient de mon fournisseur.ignore noeud en utilisant XSLT

<?xml version="1.0" encoding="UTF-8"?> 
<nm:MT_employee xmlns:nm="http://firstscenario.com"xmlns:tl="http://secondscenario.com"> 
    <EMployeeDetails> 
    <Name>Janardhan</Name> 
    <id>1234</id> 
    <Address>India</Address> 
    </EMployeeDetails> 
<tl:Extension> 
    <tl:Number>5678</tl:Number> 
    <tl:Salary>2345678</tl:Salary> 
    </tl:Extension> 
    </nm:MT_employee> 

dans le fichier XML ci-dessus, je veux ignorer toute tl: Extension du nœud. la sortie finale devrait être comme ci-dessous

<?xml version="1.0" encoding="UTF-8"?> 
<nm:MT_employee xmlns:nm="http://firstscenario.com"xmlns:tl="http://secondscenario.com"> 
    <EMployeeDetails> 
    <Name>Janardhan</Name> 
    <id>1234</id> 
    <Address>India</Address> 
    </EMployeeDetails> 
    </nm:MT_employee> 

J'ai essayé de avec différents codes XSLT, mais il ne fonctionne pas. Pourriez-vous me suggérer comment puis-je y parvenir?

Cordialement, Janardhan

+0

Pouvez-vous modifier votre question pour montrer la plus récente XSLT que vous avez essayé est « ne fonctionne pas »? Il serait également utile si vous avez dit pourquoi cela ne fonctionne pas (c'est-à-dire que vous obtenez une erreur, ou est la sortie que vous obtenez pas ce que vous attendez). Merci –

Répondre

0

La règle générale à « ignorer » un élément du XML source est d'écrire un modèle « vide » pour cet élément, dans votre cas:

<xsl:template match="tl:Extension"/> 

Comme ce modèle fait référence à l'espace de noms tl, il doit être spécifié dans la balise xsl: transformer.

Bien sûr, pour copier le reste du contenu source, votre script doit inclure le modèle d'identité .

Ci-dessous vous avez un exemple de script:

<?xml version="1.0" encoding="UTF-8" ?> 
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:tl="http://secondscenario.com" version="1.0"> 
    <xsl:output method="xml" indent="yes" /> 

    <xsl:template match="tl:Extension"/> 

    <xsl:template match="@*|node()"> 
    <xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy> 
    </xsl:template> 
</xsl:transform>