XML 문서에 대한 Ajax 요청이 있습니다. XML 문서는 RSS 피드입니다. 여기에 요청에 대한 내 onSuccess
는 다음과 같습니다MooTools : Ajax responseTree 구문 분석
onSuccess: function(responseTree) {
// process <item> elements
}
어떻게 <item>
요소를 열거하고 다양한 자식 값을 검색 할 수 있습니까?
XML 문서에 대한 Ajax 요청이 있습니다. XML 문서는 RSS 피드입니다. 여기에 요청에 대한 내 onSuccess
는 다음과 같습니다MooTools : Ajax responseTree 구문 분석
onSuccess: function(responseTree) {
// process <item> elements
}
어떻게 <item>
요소를 열거하고 다양한 자식 값을 검색 할 수 있습니까?
호출 된 파일의 콘텐츠 형식이 text/xml
으로 설정된 경우 success-event도 XML 개체를 반환합니다. 그러나 다른 서버에서 파일을 호출하는 경우에는 가능하지 않습니다. 교차 도메인이 아닙니다. 동일한 도메인의 파일을 호출하는 데만 요청 개체를 사용할 수 있습니다.
item
요소를 통해 열거하는 예제 코드.
new Request({
url: '/your-rss-parser.php',
method: 'get',
onSuccess: function(responseText, responseXML) {
responseXML.getElements('item').each(function(item) {
alert(item.getElement('title').get('text'));
});
}
}).send();
클래스에서 Björn의 솔루션을 사용하는 데 문제가 있습니다. 나는 XML
<?xml version="1.0" encoding="utf-8"?>
<countries>
<country>
<name>Argentina</name>
<id>1</id>
</country>
<country>
<name>Australia</name>
<id>2</id>
<climate>Hot</climate>
</country>
<country >
<name>France</name>
<id>3</id>
</country>
</countries>
및 JS
var requestXML = new Class({
initialize: function(){
var req = new Request({
method: 'post',
autoCancel: true,
url: 'data.xml',
onSuccess: function(text, xml){
xml.getElements('country').each(function(country) {
alert(item.getElement('country').get('text'));
});
}.bind(this)
}).send();
},
});
window.addEvent('domready', function() {
var request = new requestXML();
});
에게있어하지만 스크립트는 XML 객체에 getElement하지 않습니다 - 크롬은 불만 "catch되지 않은 형식 오류 : 개체 번호가있는 방법 'getElement를'이 없습니다."
내가 크롬에서 작업이 다른 버전을했다는
var requestXML = new Class({
initialize: function(){
var req = new Request({
method: 'post',
autoCancel: true,
url: 'data.xml',
onRequest: function(){
//
}.bind(this),
onSuccess: function(text, xml){
this.parseXML(xml);
}.bind(this),
onFailure: function(transport){
alert('XML loading error');
}
}).send();
},
parseXML: function(xml){
var firstCountry = Slick.find(xml, 'country name');
// Finds first matching element
// Returns <name>Argentina</name>
var countries = Slick.search(xml, 'country');
// Finds all matching elements
// Returns [<country>...</country>, <country>...</country>, ... ]
var output = '';
countries.each(function(item, index){
var id = item.getElement('id').get('text');
var name = item.getElement('name').get('text');
var climate = item.getElement('climate');
if (climate){
climate = climate.get('text');
} else {
climate = '';
}
output += id + ' ' + name + ' ' + climate + '<br>';
});
$('container').set('html', output);
}
});
window.addEvent('domready', function() {
var request = new requestXML();
});
(신비 슬릭 방법 in this post에 대해 읽은) 그러나 그것은의 "개체가이 속성 또는 메서드를 지원하지 않습니다"라고 IE에서 휴식 라인 var id = item.getElement('id').get('text');
. 이는 Björn 스타일 솔루션의 getElement() 문제와 유사합니다.
아무도 우리에게 조언을 해줄 수 있습니까? Mootools에 대한 문서는 JQuery와 비교할 때 좋지 않은 것처럼 보이며 XML을 구문 분석하는 방법에 대한 유용한 정보를 찾을 수 없습니다.
건배 그리고 마지막으로
RSS 피드를 확인하여 ID라는 요소가 있는지 확인하십시오. – R0b0tn1k
피드는 일반적으로 다른 서버에서있을 것이기 때문에 그래서 자바 스크립트의 RSS 피드를 검색하고 분석 할 수있는 올바른 방법은 무엇인가? – noio