Ich habe eine Anwendung, die einen Webdienst (Achse basiert) ruft eine Antwort in folgendem Format zu erhalten:Java, XSLT: Wie die dynamischen Namespaces von Axis in XSLT erzeugt zu handhaben
<?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>
hier - die Der Namespace 'axis2ns394' wird dynamisch zur Laufzeit generiert. Ich muss ein XSLT schreiben, um dieses XML zu einem einfacheren XML zu glätten (Sagen Sie eine html Tabelle mit einer Reihe für jedes 'customerProgram'). Aber ich bin mir nicht sicher, wie ich mit diesen dynamischen Namespaces umgehen soll.
Jede Hilfe wird sehr geschätzt.
Grüße,
- Ashish
+1 - es ist weit verbreitetes Missverständnis darüber, was die xmlns-Attribute tatsächlich tun – kdgregory
As Du hast richtig darauf hingewiesen. Der Namespace 'Präfix' ist dynamisch. Danke für die Lösung - es wirkte wie ein Charme. – Vini