Прошу помочь новичку в парсинге xml файла... php познаю методом тыка и поика гугла. С прасингом html разорался без проблем... а вот XML файлы, что-то вообще не поддаются... еще и файл выбрал не совсем, на мой взгляд, простенький.
Вот сам файл _https://wm.exchanger.ru/asp/XMLWMList.asp?exchtype=7
надо вытащить все значения из первого <query>. помогите, хотя бы, один параметр достать, например, outinrate. А то я даже стартануть не могу... уже немерено информации перечитал по DOM и SimpleXML, но что-то вообще "0"... либо ошибки либо чистый экран... множество примеров под свои нужды пытался подстроить, но и тут ничего... Я даже не могу понять как в такой структуре XML файла расценивать <query> - как тег, или как атрибут, или еще что-то.
Заранее признателен за любую оказанную помощь!
Спустя 7 минут, 58 секунд (15.01.2012 - 00:49) redreem написал(а):
делай парсинг на стороне клиента - XML будет входить в DOM с тривиальным доставанием всех нужных значений, а разобор уже отправляй на сервер.
Спустя 5 минут, 40 секунд (15.01.2012 - 00:54) rogodessa написал(а):
redreem, звените, но мне это мало о чем говорит Может если есть возможность, ткните где можно посмотреть какие-то нормальные примеры на эту тему.
Спустя 1 минута, 10 секунд (15.01.2012 - 00:55) redreem написал(а):
гугл по запросам:
"вставить XML на страницу"
"доступ к XML из javascript"
"вставить XML на страницу"
"доступ к XML из javascript"
Спустя 8 минут, 25 секунд (15.01.2012 - 01:04) rogodessa написал(а):
я уже там
Спустя 1 час, 15 минут, 30 секунд (15.01.2012 - 02:19) rogodessa написал(а):
redreem, раз уж не спите, может подскажите...
делаю так
файл index.html
Копия XML файла в виде data.xml сделана, т.к., если я правильно понимаю, то источник данных должен находиться на том же сервере, что и обработчик... правильно?
файл style.xsl
при загрузке index.html чистая страница...
Что делаю не так?
делаю так
файл index.html
<html>
<head>
<script language="JavaScript">
var source;
var style;
function init() {
source = new ActiveXObject("Microsoft.XMLDOM");
source.async = false;
style = new ActiveXObject("Microsoft.XMLDOM");
style.async = false;
source.load("data.xml"); это копия файла, который надо спарсить
style.load("style.xsl");
document.all.item("xslresult").innerHTML = source.transformNode(style);
return true;
}
</script>
</head>
<body onLoad="init()">
<div id="xslresult">
<!-- Здесь должен быть текст -->
</div>
</body>
</html>
Копия XML файла в виде data.xml сделана, т.к., если я правильно понимаю, то источник данных должен находиться на том же сервере, что и обработчик... правильно?
файл style.xsl
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<xsl:value-of select="//WMExchnagerQuerys/query/@id"/>
<xsl:value-of select="//WMExchnagerQuerys/query/@amountin"/>
<xsl:value-of select="//WMExchnagerQuerys/query/@amountout"/>
<xsl:value-of select="//WMExchnagerQuerys/query/@inoutrate"/>
</xsl:template>
</xsl:stylesheet>
при загрузке index.html чистая страница...
Что делаю не так?
Спустя 3 минуты, 53 секунды (15.01.2012 - 02:23) rogodessa написал(а):
пока писал, меня осенил еще один вопрос:
JavaScript обрабатывается, если я не ошибаюсь, в самом браузере... а как же потом все это добро в БД записать?
JavaScript обрабатывается, если я не ошибаюсь, в самом браузере... а как же потом все это добро в БД записать?
Спустя 12 часов, 10 минут, 29 секунд (15.01.2012 - 14:34) redreem написал(а):
я ж писал:
Цитата |
..., а разобор уже отправляй на сервер |
в том в виде, который тебе удобен. да хоть json хотябы.
Спустя 21 минута, 59 секунд (15.01.2012 - 14:56) killer8080 написал(а):
$t = file_get_contents('https://wm.exchanger.ru/asp/XMLWMList.asp?exchtype=7');
preg_match('#<query[^>]+>#isU', $t, $m);
preg_match_all('#([a-z]+)="([^"]+)"#isU', $m[0], $m);
$xml = array_combine($m[1], $m[2]);
echo '<pre>'.print_r($xml, 1).'</pre>';
Спустя 3 часа, 25 минут, 53 секунды (15.01.2012 - 18:22) rogodessa написал(а):
killer8080, спасибо вам.
нужный результат при минимуме действий...
я, правда, уже нашел решение у автора данной статьи _http://webi.ru/webi_articles/big_xml.html
Но ваш вариант, конечно, значительно проще
Я вам что-то должен?
нужный результат при минимуме действий...
я, правда, уже нашел решение у автора данной статьи _http://webi.ru/webi_articles/big_xml.html
Но ваш вариант, конечно, значительно проще
Я вам что-то должен?
Спустя 2 минуты, 34 секунды (15.01.2012 - 18:24) killer8080 написал(а):
Цитата (rogodessa @ 15.01.2012 - 17:22) |
Я вам что-то должен? |
Ага 10 000 000$ и плюсик в карму
Спустя 2 минуты, 59 секунд (15.01.2012 - 18:27) Winston написал(а):
killer8080
У тебя file_get_contents без проблем работает с https?
У тебя file_get_contents без проблем работает с https?
Спустя 55 секунд (15.01.2012 - 18:28) killer8080 написал(а):
Winston
тестил на Денвере - без проблем
тестил на Денвере - без проблем
Спустя 29 минут, 57 секунд (15.01.2012 - 18:58) Winston написал(а):
Цитата (killer8080 @ 15.01.2012 - 17:28) |
тестил на Денвере - без проблем |
Хм.. без openssl у меня не запахало.
А по тебе, все гораздо проще
$xml = simplexml_load_file('https://wm.exchanger.ru/asp/XMLWMList.asp?exchtype=7');
foreach($xml->WMExchnagerQuerys->query as $key => $val)
echo 'id ' . $val->attributes()->id . ' outinrate ' . $val->attributes()->outinrate . '<br/>';
Спустя 34 минуты, 18 секунд (15.01.2012 - 19:32) killer8080 написал(а):
Цитата (Winston @ 15.01.2012 - 17:58) |
Хм.. без openssl у меня не запахало. |
Да, я посмотрел у меня оно подключено.