Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как правильно прописать путь в XPath 
:(
    Опции темы
Raily
Дата 9.4.2012, 14:45 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 25.9.2006

Репутация: нет
Всего: нет



У меня есть такой XML (ниже привожу код). В нём содержатся курсы валют. Мне нужно выащить дату из первого тэга date.
Я пишу xPath, привожу сразу несколько вариантов:
Код

$xml=simplexml_load_string($data_curr); //$data_curr содержит строку с пришедшим XML

$data_curr = $xml->xpath('date[0]'); //первый вариант
$data_curr = $xml->xpath('exchange/date[0]'); //второй вариант
$data_curr = $xml->xpath('exchange/date[0]/d'); //третий вариант


Но все варианты при пропечатке выдают пустой массив,  у меня вопрос - как вытащить дату имеено в первом тэге date?

Код

<exchange>
    <date>
        <d>09.04.12 00:00</d>
        <currency>
            <curr>
                <chr_code>USD</chr_code>
                <val_name>Доллар США</val_name>
                <buy>29.0186</buy>
                <sale>29.9025</sale>
                <cbr>29.4606</cbr>
            </curr>
            <curr>
                <chr_code>EUR</chr_code>
                <val_name>Евро</val_name>
                <buy>37.936</buy>
                <sale>39.0915</sale>
                <cbr>38.5138</cbr>
            </curr>
        </currency>
    </date>
    <date>
        <d>09.04.12 11:10</d>
        <currency>
            <curr>
                <chr_code>USD</chr_code>
                <val_name>Доллар США</val_name>
                <buy>29.3722</buy>
                <sale>29.7552</sale>
                <cbr>29.4606</cbr>
            </curr>
            <curr>
                <chr_code>EUR</chr_code>
                <val_name>Евро</val_name>
                <buy>38.3212</buy>
                <sale>38.8989</sale>
                <cbr>38.5138</cbr>
            </curr>
        </currency>
    </date>
</exchange>

PM MAIL   Вверх
Fortop
Дата 9.4.2012, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



http://www.w3schools.com/xpath/xpath_syntax.asp

Нумерация начинается с 1, а не с 0

Код

var_dump($xml->xpath('/exchange/date[1]'));
var_dump($xml->xpath('/exchange/date[0]'));
var_dump($xml->xpath('/exchange/date[1]/d'));


Код

array(1) {
  [0]=>
  object(SimpleXMLElement)#2 (2) {
    ["d"]=>
    string(14) "09.04.12 00:00"
    ["currency"]=>
    object(SimpleXMLElement)#3 (1) {
      ["curr"]=>
      array(2) {
        [0]=>
        object(SimpleXMLElement)#4 (5) {
          ["chr_code"]=>
          string(3) "USD"
          ["val_name"]=>
          string(19) "Доллар США"
          ["buy"]=>
          string(7) "29.0186"
          ["sale"]=>
          string(7) "29.9025"
          ["cbr"]=>
          string(7) "29.4606"
        }
        [1]=>
        object(SimpleXMLElement)#5 (5) {
          ["chr_code"]=>
          string(3) "EUR"
          ["val_name"]=>
          string(8) "Евро"
          ["buy"]=>
          string(6) "37.936"
          ["sale"]=>
          string(7) "39.0915"
          ["cbr"]=>
          string(7) "38.5138"
        }
      }
    }
  }
}
array(0) {
}
array(1) {
  [0]=>
  object(SimpleXMLElement)#2 (1) {
    [0]=>
    string(14) "09.04.12 00:00"
  }
}



Это сообщение отредактировал(а) Fortop - 9.4.2012, 20:08


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Raily
Дата 10.4.2012, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 25.9.2006

Репутация: нет
Всего: нет



Спасибо большое!!! smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: X технологии | Следующая тема »


 




[ Время генерации скрипта: 0.1064 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.