Как мне разобрать файл XML, который находится на другом веб-сервере? - PullRequest
2 голосов
/ 31 марта 2010

У меня есть список дат обучения, сохраненных в файле XML, и у меня есть небольшой файл javascript, который анализирует все даты обучения и выкладывает их на аккуратно отформатированную страницу. Это решение было приемлемым, пока мы не решили, что нам нужна другая веб-страница на другом сервере для доступа к тому же 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)
%>

У меня вопрос двоякий:

* +1007 * Есть ли способ, которым я могу использовать java-скрипт для разбора удаленного XML-файла Если нет, то почему мой код не дает мне правильный ответ?

1 Ответ

1 голос
/ 31 марта 2010

Есть ли способ, которым я могу использовать 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) функцию в вашем скрипте (но я думаю, у вас уже есть такая).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...