2010-02-24 2 views
2

Ajax.Request의 XML이 Ajax.Response.responseXML에서 다시 나타납니다. 내 XML에는 실제로 내 문서에 추가 할 수있는 XHTML 태그가 포함되어 있습니다.

responseXML의 노드를 현재 문서에 추가하는 데 문제가 있습니다. 나는 그것이 XML 노드이고 DOM 노드가 아니기 때문에 이것이 의심 스럽다.

responseXML$()으로 감싸는 것은 노드의 확장 버전을 반환하지 않는 것으로 보이며 문서는 노드가 표시 될지 여부를 말하지 않습니다.

프로토 타입은 responseXML을 사용할 수있는 방법을 제공하고, 그렇지 않은 경우 응답을 구문 분석하고 사용하는 크로스 브라우저 방식이 있습니까?

답변

1

프로토 타입에 XML을 파싱 할 원시 방법이 없습니다. 또한 xml을 $ (xml)로 확장 한 다음 DOM을 .next(),. select() 등으로 처리 할 수도 없습니다.

다음은 수동으로 XML을 수동으로 구문 분석 한 예입니다 맞춤법 검사 결과에서. 시작해야 할 것입니다.

나는 "올바른"대답은 기독교의 답변을 받아 있지만
parseResults: function(results) { 
var c = results.responseXML.getElementsByTagName('c'); 
var corrections = $A(c); 
if(!corrections.size()){ 
    this.link.insert({ after: '<span class="spellCheckNoErrors">No spelling errors</span>' }); 
    (function(){ this.link.next().remove(); }.bind(this)).delay(1); 
    return null; 
} 
this.res = $A(); 
corrections.each(function(node){ 
    sugg = node.childNodes[0].nodeValue; 
    offset = node.attributes[0].nodeValue; 
    len = node.attributes[1].nodeValue; 
     this.res.push(
    $H({ 
     word: this.text.substr(offset, len), 
     suggestions: sugg.split(/\s/) 
      }) 
); 
},this); 
this.overlay(); 
}, 
2

, 광산의 대학교 안 나에게 프로토 타입과 XML 응답을 구문 분석하는 방법을 을 보였다.

responseXML을 사용하면 Element을 만들고 update()responseText으로 만들면됩니다. 그런 다음 select()과 같은 메소드를 사용하여 노드를 트래버스 할 수 있습니다.

관련 문제