победить xpath

IgoX

Новичок
добрый день!
Помогите написать запрос
есть
PHP:
<ExchangeRates version="1.0.0.0" author="Coral Travel">
<Rates beginDate="2012-06-26T00:00:00" endDate="2012-06-26T00:00:00">
  <Rate baseCurrency="3" baseCurrencyName="EUR" currency="4" currencyName="RUB" sale="42.5400"/>
  <Rate baseCurrency="2" baseCurrencyName="USD" currency="4" currencyName="RUB" sale="34.0000"/>
</Rates>
<Rates beginDate="2012-06-23T00:00:00" endDate="2012-06-25T00:00:00">
  <Rate baseCurrency="3" baseCurrencyName="EUR" currency="4" currencyName="RUB" sale="43.1000"/>
  <Rate baseCurrency="2" baseCurrencyName="USD" currency="4" currencyName="RUB" sale="34.3600"/></Rates>
.....
пишу запрос
PHP:
 $nodes = $xml->xpath("/ExchangeRates/Rates[@beginDate='2012-06-26T00:00:00']/Rate[@baseCurrencyName='EUR']");

    if(sizeof($nodes)==1) {
        echo $nodes[0]['sale'];
    }
выборка проходит нормально, а если нужна выборка за 24 число т.е. в ренже beginDate="2012-06-23T00:00:00" endDate="2012-06-25 то
делаю
PHP:
$nodes = $xml->xpath("/ExchangeRates/Rates[@beginDate>='2012-06-24T00:00:00']
но не работает т.к. дату он ен понимает.
Как лучше выбрать курс на 24?
 

alekciy

Новичок
но не работает т.к. дату он ен понимает.
В XPath нет типа "дата". Поэтому такое сравнение не будет работать по определению. Работа с beginDate происходит как со строкой. Надеюсь исходя из этого решение очевидно.
 

alekciy

Новичок
кстати, если юзаете exslt, то там можно с датой работать http://www.exslt.org/date/
Я тоже про EXSLT в первую очередь подумал, но вроде же в таком контексте XPath будет не применим. Максимум для матчинга. Т.е. и исходного XML через EXSLT получить новый XML по условию выборки и дальше работать уже с ним. Разве он дает писать XPath и получать NodeList?
 
Сверху