J'ai une application qui appelle un service Web (axe base) pour obtenir une réponse dans le format suivant:Java, XSLT: Comment gérer les espaces de noms dynamiques générés par l'axe dans XSLT
<?xml version="1.0"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <axis2ns394:ServiceLevelDetailsResponse xmlns:axis2ns394="urn:myco:com:mapping:service:3.0"> <ns1:errorFlag xmlns:ns1="urn:myco:com:mapping:service:3.0">false</ns1:errorFlag> <axis2ns394:customerProgram> <axis2ns394:name>ABC</axis2ns394:name> <axis2ns394:description>ABC SERVICES</axis2ns394:description> <axis2ns394:programRank>1</axis2ns394:programRank> <axis2ns394:bindOptions> <axis2ns394:name>PRO1A</axis2ns394:name> <axis2ns394:description>Complete Home Solution</axis2ns394:description> <axis2ns394:programName>PROMO</axis2ns394:programName> <axis2ns394:programDescription>Promotional Bundle 1A</axis2ns394:programDescription> </axis2ns394:bindOptions> <axis2ns394:bindOptions> <axis2ns394:name>PRO2A</axis2ns394:name> <axis2ns394:description>Buy 1 Get 1 Free</axis2ns394:description> <axis2ns394:programName>PROMO</axis2ns394:programName> <axis2ns394:programDescription>Promotional Bundle 2A</axis2ns394:programDescription> </axis2ns394:bindOptions> </axis2ns394:customerProgram> </axis2ns394:ServiceLevelDetailsResponse> </soapenv:Body> </soapenv:Envelope>
ici - la namespace 'axis2ns394' est généré dynamiquement au moment de l'exécution. J'ai besoin d'écrire un XSLT pour aplatir ce XML vers un XML plus simple (Dites une table html avec une ligne pour chaque 'customerProgram'). Mais je ne suis pas sûr de savoir comment gérer ces espaces de noms dynamiques.
Toute aide sera grandement appréciée.
Cordialement,
- Ashish
+1 - c'est une idée fausse commune sur ce que font réellement les attributs xmlns – kdgregory
As vous avez correctement souligné. L'espace de noms 'préfixe' est dynamique. Merci pour la solution - son charme likea travaillé. – Vini