Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 17.02.2009, 20:43
Аспирант
Отправить личное сообщение для Nikitos* Посмотреть профиль Найти все сообщения от Nikitos*
 
Регистрация: 25.11.2008
Сообщений: 37

Товарищи, я совсем запутался. Про XPath почитал на предложенном сайте, но все равно не очень понял как осуществить задуманное.

XML тащу в сафари вот так :
var URL = "http://bank-ua.com/export/currrate.xml" + "?" + Math.random();
XML = false;
XML = new XMLHttpRequest();
XML.overrideMimeType('text/xml');
XML.open('GET', URL, true);
XML.send(null);


Кто-нибудь все-таки может написать строчечку кода как определить номер тега в файле зная его значение ?
Ответить с цитированием
  #12 (permalink)  
Старый 17.02.2009, 21:17
Аспирант
Отправить личное сообщение для IIIEPJIOK Посмотреть профиль Найти все сообщения от IIIEPJIOK
 
Регистрация: 23.12.2008
Сообщений: 75

Цитата:
Про XPath почитал на предложенном сайте
про XPathEvaluator, дочитали
Елки...
Цитата:
var URL = "http://bank-ua.com/export/currrate.xml" + "?" + Math.random();
И что? Это работает?

Последний раз редактировалось IIIEPJIOK, 17.02.2009 в 22:07.
Ответить с цитированием
  #13 (permalink)  
Старый 17.02.2009, 22:25
Аспирант
Отправить личное сообщение для Nikitos* Посмотреть профиль Найти все сообщения от Nikitos*
 
Регистрация: 25.11.2008
Сообщений: 37

Сообщение от IIIEPJIOK Посмотреть сообщение
про XPathEvaluator, дочитали
Елки...

И что? Это работает?
1. Дочитал, но я в этом не очень пока разбираюсь, без примера не справлюсь

2. Работает. Можете проверить например : http://bank-ua.com/export/currrate.xml?0.1313131313
Ответить с цитированием
  #14 (permalink)  
Старый 17.02.2009, 22:34
Аспирант
Отправить личное сообщение для IIIEPJIOK Посмотреть профиль Найти все сообщения от IIIEPJIOK
 
Регистрация: 23.12.2008
Сообщений: 75

Цитата:
Работает. Можете проверить например
я даже не сомневался, что ссылка рабочая....
У вас ваш код работает?
var URL = "http://bank-ua.com/export/currrate.xml" + "?" + Math.random();
XML = false;
XML = new XMLHttpRequest();
XML.overrideMimeType('text/xml');
XML.open('GET', URL, true);
XML.send(null);

Ошибки, типа "Доступ запрещен" не выскакивает?
Ответить с цитированием
  #15 (permalink)  
Старый 18.02.2009, 07:12
Аспирант
Отправить личное сообщение для Nikitos* Посмотреть профиль Найти все сообщения от Nikitos*
 
Регистрация: 25.11.2008
Сообщений: 37

Работает, только в Сафари, в мозиле и в IE не пашет. Но так как этот код для айфона, меня устраивает. А что не должно работать или ошибка где вкралась ?
Ответить с цитированием
  #16 (permalink)  
Старый 18.02.2009, 10:41
Аспирант
Отправить личное сообщение для IIIEPJIOK Посмотреть профиль Найти все сообщения от IIIEPJIOK
 
Регистрация: 23.12.2008
Сообщений: 75

Цитата:
А что не должно работать или ошибка где вкралась ?
Цитата:
Ограничения безопасности. Кросс-доменный XMLHttpRequest

Для ограничения XmlHttpRequest используется философия "Same Origin Policy". Она очень проста - каждый сайт в своей песочнице. Запрос можно делать только на адреса с тем же протоколом, доменом, портом, что и текущая страница.

Т.е, со страницы на адресе http://site.com нельзя сделать XmlHttpRequest на адрес https://site.com, http://site.com:81 или http://othersite.com
Продолжение....
Ответить с цитированием
  #17 (permalink)  
Старый 18.02.2009, 10:54
Аспирант
Отправить личное сообщение для Nikitos* Посмотреть профиль Найти все сообщения от Nikitos*
 
Регистрация: 25.11.2008
Сообщений: 37

Сафари видимо игнорирует эти ограничения. Я этим методом без проблем тяну данные с различных ресурсов и никаких проблем не возникает.
Тут лежит моя небольшая разработка под IPhone, ее можно запустить в Сафари и убедиться, что все работает без проблем.

Спасибо за ссылку, почитаю.

И все-таки, не поможете мне с моим вопросом ?
Ответить с цитированием
  #18 (permalink)  
Старый 18.02.2009, 12:42
-
Отправить личное сообщение для twolf Посмотреть профиль Найти все сообщения от twolf
 
Регистрация: 16.07.2008
Сообщений: 207

помоему такую задачу надо решать серверным путем. XPath+php например.
Вы тогда сможете по крону запускать скрипты, которые будут получать xml файлы с другого(других) сайтов и всегда иметь свежий курс валют.
Ответить с цитированием
  #19 (permalink)  
Старый 18.02.2009, 13:35
Аспирант
Отправить личное сообщение для Nikitos* Посмотреть профиль Найти все сообщения от Nikitos*
 
Регистрация: 25.11.2008
Сообщений: 37

Похоже меня не слышат, и тема ушла совсем в другое русло ...
У меня нет проблемы с доставанием XML и с получением свежего курса.

Вот мой рабочий код, который работает безо всяких проблем :
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>
</head>

<body onload="test();"> 


<script>

function test(){
            var URL = "http://bank-ua.com/export/currrate.xml" + "?" + Math.random();
	        XML = false;
                XML = new XMLHttpRequest();
                XML.overrideMimeType('text/xml');
                XML.open('GET', URL, true);
                XML.send(null);

    XML.onload= function() {

    if (XML.readyState == 4) {
       if (XML.status == 200) {

                var xmldoc = XML.responseXML;
                
		var V1 = "AUD"
		if (V1=="AUD"){tag1 = 0;}
		var course1 = xmldoc.getElementsByTagName('rate').item(tag1).firstChild.data;

		alert(course1);
		}}}}
</script>
</body>



Но меня перестал устраивать такой способ определения курса, потому, что сегодня валюта AUD находится в item[0], а завтра может оказаться в item[1] например.

Поэтому возник вопрос как в моей ситуации определить значение одного одного тега, зная значение другово.
Ответить с цитированием
  #20 (permalink)  
Старый 18.02.2009, 14:16
Аспирант
Отправить личное сообщение для IIIEPJIOK Посмотреть профиль Найти все сообщения от IIIEPJIOK
 
Регистрация: 23.12.2008
Сообщений: 75

Дык, вам ответили XPath,вам дали ссылку, читайте...
Вам не создать объект?
var evaluator = new XPathEvaluator();

вам не создать Xpath - выражение?
Код:
'/chapter/item/rate[preceding-sibling::char3="AUD"]'
Вам не прочесть на MDC, какой метод выполняет это выражение?
evaluate()

Что вам не ясно?
Не хотите читать? Так, вам уже писали

Цитата:
все что можно сделать с XPath, можно и без него.
Циклом, перебирайте все item, и ищите у кого chapter3 равен вашему, когда найдете, читайте значение дочернего узла rate

Последний раз редактировалось IIIEPJIOK, 18.02.2009 в 14:18.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как удалить из памяти весь XML документ? EisBerg Events/DOM/Window 1 03.04.2010 14:45
Как узнать какие ошибки произошли при парсинге xml файла faunder Events/DOM/Window 0 12.09.2008 14:17
XML данные в массив. Onis Общие вопросы Javascript 7 16.07.2008 00:12
AJAX & XML slavonbl AJAX и COMET 3 10.07.2008 22:30
вопрос по long poll megaswin AJAX и COMET 2 27.05.2008 09:20