클래스를 사용하여 XML의 mysql 쿼리의 ResultSet을 변환하고 해당 XML을 브라우저로 반환하는 서블릿을 만들었습니다. XML DOM에서 Javascript로 올바르게 탐색 할 수 있지만 항상 "정의되지 않은"값을 얻기 때문에 얼마나 많은 태그가 문서에 있는지 셀 수는 없습니다. 누구든지이 문제를 해결할 수 있습니까?서블릿으로 만든 문서의 XML 태그를 계산하는 방법
내가 XML 응답과 자바 스크립트 소스를 게시
function newXMLHttpRequest() {
var request = null;
var browser = navigator.userAgent.toUpperCase();
if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object") {
request = new XMLHttpRequest();
} else if(window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0) {
if(browser.indexOf("MSIE 5") < 0) {
request = new ActiveXObject("Msxml2.XMLHTTP");
} else {
request = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return request;
}
function search_actor(){
var name = document.getElementById("actname").value;
if(name == "")
document.getElementById("risultati").innerHTML = "Inserisci un valore nel campo di ricerca";
else{
var req = newXMLHttpRequest();
req.onreadystatechange = function(){
if(req.readyState == 4){
if(req.status == 200){
getData(req.responseXML);
}
else if(req.status == 204){
delete_suggest();
}
}
}
}
req.open("POST", "GetActors", true);
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
var params = "name=" + escape(name);
req.send(params);
}
//debug function
function xml_to_string(xml_node)
{
if (xml_node.xml)
return xml_node.xml;
else if (XMLSerializer)
{
var xml_serializer = new XMLSerializer();
return xml_serializer.serializeToString(xml_node);
}
else
{
alert("ERROR: Extremely old browser");
return "";
}
}
function getData(responseXML){
delete_suggest();
var prec_risultati = document.getElementById("risultati");
// Se la risposta non è nulla
// Punto alla radice della risposta
var risposta = responseXML.getElementsByTagName('first_name');
var lenghtr = risposta.lenght;
document.getElementById("risultati").innerHTML = lenghtr;
if(lenghtr > 0){
for(x = 0; x < lenghtr; x++){
var valori = risposta[x].childNodes[0].nodeValue;
var row = document.createElement("tr");
var td = document.createElement("td");
td.appendChild(document.createTextNode(valori));
row.appendChild(td);
prec_risultati.appendChild(row);
}
}
}
function delete_suggest(){
document.getElementById("risultati").innerHTML = "";
}
XML 응답 내가이 XML에 얼마나 많은 행을 계산 할
<results><row><actor_id>10</actor_id><first_name>CHRISTIAN</first_name><last_name>GABLE</last_name><last_update>2006-02-15 04:34:33.0</last_update></row><row><actor_id>21</actor_id><first_name>KIRSTEN</first_name><last_name>PALTROW</last_name><last_update>2006-02-15 04:34:33.0</last_update></row></results>
유사하며, 내가 테스트
를했습니다responseXML.getElementsByTagName("row").lenght
responseXML.getElementsByTagName("row")[0].lenght
responseXML.getElementsByTagName("row").childNodes.lenght
그러나이 모든 것은 나를 정의하지 않습니다. 누군가 나를 도울 수 있니?
이 대신'lenght'의'length'을 시도해 봤어 :
그것은 더 자세한 내용은
responseXML.getElementsByTagName("row").length;
이 예제를 확인해야 하는가? –