У меня проблема с axis2 и ajax. Я получаю xml от одного из моих веб-сервисов с помощью jjuery-функций ajax и использую этот плагин jquery для преобразования результата xml в html.
Вот пример соответствующего xml, который возвращает служба.
<ns:getPatientsByDoctorResponse>
<ns:return type="com.emolst.jdbc.PatientBean">
<ax23:firstName>Bryce</ax23:firstName>
<ax23:lastName>Thompson</ax23:lastName>
</ns:return>
</ns:getPatientsByDoctorResponse>
Я просмотрел объект xml Document, полученный от вызова jjuery ajax, и он, похоже, удалил пространства имен из тегов и сделал все теги строчными. Однако я не могу заставить свои шаблоны xsl распознавать какие-либо теги.
Вот что у меня сейчас есть в xsl.
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<option>success1</option>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="//return">
<option>success2</option>
<option>
<xsl:value-of select="firstname"/> <xsl:value-of select="lastname"/>
</option>
</xsl:template>
</xsl:transform>
Лучшее, что я могу получить - это опция success1. Я нашел некоторую информацию здесь о том, как заставить ax2 играть лучше с ajax, но похоже, что это может испортить клиентов службы Java, которые у меня есть.
Вот этот javascript.
$("select[name=patientlist]").transform({
xml:{
url:"/axis2/services/PatientService/getPatientsByDoctor",
data {
docKey: "6"
},
type:"GET",
dataType:"xml"
},
xsl:"xsl/patients-option.xsl"
});
Итак, я делаю что-то глупое или есть лучший способ сделать это? Спасибо за любую помощь.