jQuery'yi kullanarak bir xml yanıtı ayrıştırmaya çalışıyorum ve sadece bir öğeyi bir sayfa çıktıyorum ancak bu konuda başarısız oldum.jQuery Kullanarak XML Yanıtı Nasıl Ayrılır
Yanıtın & ayrıştırma için kullanıyorum kod aşağıdadır.
$.ajax({
url: UCMDBServiceUrl,
type: "POST",
dataType: "xml",
data: soapMessage,
success: UCMDBData,
crossDomain: true,
contentType: "text/xml; charset=\"utf-8\""
});
alert("Sent2");
return false;
}
function UCMDBData(xmlHttpRequest, status, msg)
{
alert("Came back1");
$(xmlHttpRequest.responseXML).find('tns:CIs').each(function()
{
alert("Came back2");
$(this).find("ns0:CI").each(function()
{
alert("Came back3");
$("#output").append($(this).find("ns0:ID").text());
});
});
}
ben "back1 Came" için uyarıları alıyorum ama başka gitmeden gibi görünen etmez. Aşağıda, yukarıdaki jquery kodumu kullanarak ayrıştırmaya çalışıyorum XML Yanıtı. Ben sonuçta yanıt dışına dönmeye çalışıyorum metin Benim soru nasıl verileri düzgün ayrıştırmak olduğunu bu elemanın
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header />
<soapenv:Body>
<tns:getFilteredCIsByTypeResponse xmlns:ns0="http://schemas.hp.com/ucmdb/1/types" xmlns:ns1="http://schemas.hp.com/ucmdb/ui/1/types" xmlns:ns2="http://schemas.hp.com/ucmdb/1/types/query" xmlns:ns3="http://schemas.hp.com/ucmdb/1/types/props" xmlns:ns4="http://schemas.hp.com/ucmdb/1/types/classmodel" xmlns:ns5="http://schemas.hp.com/ucmdb/1/types/impact" xmlns:ns6="http://schemas.hp.com/ucmdb/1/types/update" xmlns:ns7="http://schemas.hp.com/ucmdb/discovery/1/types" xmlns:ns8="http://schemas.hp.com/ucmdb/1/types/history" xmlns:tns="http://schemas.hp.com/ucmdb/1/params/query">
<tns:CIs>
<ns0:CI>
<ns0:ID>4d030502995a00afd989d3aeca2c990c</ns0:ID>
<ns0:type>nt</ns0:type>
<ns0:props>
<ns0:strProps>
<ns0:strProp>
<ns0:name>name</ns0:name>
<ns0:value>prodoo</ns0:value>
</ns0:strProp>
</ns0:strProps>
<ns0:booleanProps>
<ns0:booleanProp>
<ns0:name>host_iscomplete</ns0:name>
<ns0:value>false</ns0:value>
</ns0:booleanProp>
</ns0:booleanProps>
</ns0:props>
</ns0:CI>
</tns:CIs>
<tns:chunkInfo>
<ns0:numberOfChunks>0</ns0:numberOfChunks>
<ns0:chunksKey>
<ns0:key1 />
<ns0:key2 />
</ns0:chunksKey>
</tns:chunkInfo>
</tns:getFilteredCIsByTypeResponse>
</soapenv:Body>
</soapenv:Envelope>
var? Kod sözdiziminin doğru olduğuna inanıyorum ancak beklenen sonuçları almıyorum. Herhangi bir yardım için minnettarım, teşekkürler. "Ben sadece uyarı mesajı çalıştırdığınızda
$.ajax({
url: UCMDBServiceUrl,
type: "POST",
dataType: "xml",
data: soapMessage,
success: UCMDBData,
crossDomain: true,
contentType: "text/xml;"
});
alert("Sent2");
return false;
}
function UCMDBData(data, textStatus, jqXHR) {
alert("Came back1");
$(data).find('tns:CIs').each(function() {
alert("Came back2");
$(this).find("ns0:CI").each(function() {
alert("Came back3");
$("#output").append($(this).find("ns0:ID").text());
document.AppServerForm.outputtext.value = document.AppServerForm.outputtext.value + "http://localhost:8080/ucmdb/cms/directAppletLogin.do?objectId=" + $(this).find('ns0:ID').text() +"&infopane=VISIBLE&navigation=true&cmd=ShowRelatedCIs&interfaceVersion=8.0.0&ApplicationMode=ITU&customerID=1&userName=admin&userPassword=admin";
});
});
}
i is back alırsınız:
DÜZENLEME
Ben öneriyi beğendi aşağıdaki için kodumu değiştirdik, ancak hala şans Geri döndü1 "yani kod hala jquery ile düzgün şekilde xml geçmiyor demektir. Başka önerileriniz var mı?
Tek bir ns0: CI örneğini eşleştirmeye mi çalışıyorsunuz, yoksa birden çok kez görünebilir mi? – JesseBuesking
Burada da gönderdiğim XML yanıtında görebileceğiniz gibi yalnızca bir tane ns0: CI örneği döndürülüyor. – user1013396