2010-03-31 3 views
2

У меня есть список дат обучения, сохраненных в файле XML, и у меня есть небольшой файл javascript, который анализирует все даты обучения и выплескивает их на аккуратно отформатированную страницу. Это решение было прекрасным, пока мы не решили, что нам нужна другая веб-страница на другом сервере для доступа к одному и тому же файлу XML.Как проанализировать XML-файл, который находится на другом веб-сервере?

Поскольку я не могу использовать JavaScript для анализа XML-файла, расположенного на другом сервере, я решил, что просто использую сценарий ASP. Однако, когда я бегу это следующее, я получаю ответ, что есть 0 узлы, соответствующие значение, которое должно быть несколько:

<% 
Dim URL, objXML 
URL = "http://www.site.com/feed.xml" 
Set objXML = Server.CreateObject("MSXML2.DOMDocument.3.0") 
objXML.setProperty "ServerHTTPRequest", True 
objXML.async = False 
objXML.Load(URL) 

If objXML.parseError.errorCode <> 0 Then 
    Response.Write(objXML.parseError.reason) 
    Response.Write(objXML.parseError.errorCode) 
End If 

Response.Write(objXML.getElementsByTagName("era").length) 
%> 

Мой вопрос два раза:

  1. Есть Есть способ Я могу использовать java-скрипт для анализа удаленного XML-файла
  2. Если нет, то почему мой код не дает мне надлежащего ответа?

ответ

1

ли есть способ, которым я могу использовать Java-скрипт для разбора удаленного файла XML

Чтобы обойти ограничения SOP, вы можете сделать это так же, как это делается с JSONP (просто отправить XML вместо)

http://en.wikipedia.org/wiki/JSONP#JSONP

Так вы (возможно динамически) вставить тег сценария на странице:

<script type="text/javascript" 
     src="http://otherdomain.com/getXml?jsonp=parseXml"> 
</script> 

И сервер возвратит это содержание:

parseXml("<?xml version=\"1.0\">..."); 

Тогда вы только должны определить parseXml(xmlStr) функцию в сценарии (но я думаю, что у вас уже есть).

+0

Nice. Мне тоже нравится этот подход. Спасибо Chris_I. – Stevko