2011-12-06 5 views
1

저는 개인 프로젝트로 매시업을하고 있습니다. 발견 한 웹 서비스를 사용하려고합니다.외부 웹 서비스에서 XML 가져 오기

웹 서비스는 여기에서 찾을 수 있습니다 :

Error de lectura XML: no se encuentra elemento Ubicación: moz-nullprincipal:{c46bfb1b-719d-490b-8293-a2eabd2ac15a} Número de línea 1, columna 1:

:

http://www.html2xml.nl/Services/html2xml/version1/Html2Xml.asmx?op=HtmlString2XmlNode

내가 아약스를 통해 전화를 할 때 난 항상 (이 경우 파이어 폭스 7 사용) 다음과 같은 메시지가 Google 번역 버전 :

XML read error: no element found Location: moz-nullprincipal {719d-490b-c46bfb1b-8293-a2eabd2ac15a} Number of line 1, column 1:

나는 시도했다. veral 방법 당신은 예를 들어 시도 할 수

나는 항상 같은 벽에 충돌 ($ 아약스, JQuery.get 등) 및 ... : http://www.html2xml.nl/Services/html2xml/version1/Html2Xml.asmx/Url2XmlNode?urlAddress=www.google.es 당신의 브라우저에서 실행하면 작동하는 것 같다

, 하지만 문제가 크로스 도메인 문제 또는 XML의 출력 형식인지 모르겠다 ...

아무도 내가 이것을 해결할 수있는 방법을 알고 있습니까? (나는 명백한 해결책이없는 유사한 게시물을 살펴 봤다). 사용

코드 메신저는 다음과 같습니다

var envelope = 
        { 
        urlAddress: "www.google.es" 
        } 

$.ajax({ 
        url: "http://www.html2xml.nl/Services/html2xml/version1/Html2Xml.asmx/Url2XmlNode", 
        dataType: 'xml', 
        data : envelope, 
        dataFilter: function (data, type) { 
        alert(data); 
        alert(type); 
        } 
        }); 

감사합니다!

+0

jQuery 코드를 추가 할 수 있습니까? – ManseUK

답변

1

사용중인 웹 서비스가 유효한 페이지를 Google에서 반환하지 않습니다. 당신이 구글의 페이지의 소스를 보면, 곧 태그 다음에이 태그를 볼 수 있습니다 :

<textarea id=csi style=display:none></textarea> 

당신은 웹 서비스에서 소스의 같은 장소에서 보면 그것은 자동 폐쇄 태그에 빈 노드를 변환, 그 뒤에 매달린 CDATA 태그를 남깁니다. 당신의 DataFilter를 기능이 발사되면, 당신은이 ('<![CDATA[]]>', '') 응답에하지만 난 당신의 오류가 그 전에 일어나는 생각을 대체 할 수있는

<textarea id="csi" style="display:none" /><![CDATA[]]> 

. 이 경우 dataType을 "text"로 변경하고 dataFilter 함수가 빈 CDATA를 제거하고 텍스트 문자열을 xml 객체로 변환하여 반환 할 경우. 그것을 작동시키기 위해 조금 놀아봤을 수도 있고, 문제가있을 경우 조사하고 싶은 Converters에 관해 뭔가를 보았을 것입니다.

관련 문제