парсинг xml

Focus

Новичок
парсинг xml

Подскажите как распарсить простой xml-файл:
<?xml version="1.0" encoding="UTF-8"?>
<tarifs>
<item access="limited">
<country code="ua">Украина</country>
<number>4448</number>
<operatorname>Life (Украина)</operatorname>
<operatorlatin>Life</operatorlatin>
<operatorfull>Life_ua</operatorfull>

<abonentprice>10 грив. (UAH) без НДС</abonentprice>
<price>10</price>
<currency>UAH</currency>
<usdprice>2</usdprice>
<clientprofit>18.82</clientprofit>
<clientprofitusd>0.61463</clientprofitusd>

<operatorid>69</operatorid>
</item>
<item access="limited">
.......................................................
Когда-то помню у меня была пара небольших функций, но где-то я их потерял. На phpclasses.org нашел пару классов, но они что-то у меня не работают.
На форуме что-то ничего подходящего не нашел. Помогите!
 

Focus

Новичок
SimpleXML
он уже в пхп5 интегрирован или нужно скачивать дополнительно?
 

Resha

Новичок
В пакет входит. Ставится ли по-умолчанию, не помню.
 

Focus

Новичок
include("data2.php");
$xml = simplexml_load_string($xmlstr);

прочитал файл в переменную объект. Как теперь получить доступ к елементам?

Мой файл с такой структурой:
PHP:
<tarifs>
  <item access="limited">
    <country code="ua">Украина</country>
    <number>4448</number>
    <operatorname>Life (Украина)</operatorname>
    <operatorlatin>Life</operatorlatin>
    <operatorfull>Life_ua</operatorfull>
    <abonentprice>10 грив. (UAH) без НДС</abonentprice>
    <price>10</price>
    <currency>UAH</currency>
    <usdprice>2</usdprice>
  </item>
    ..........
  <item access="limited">
     ........................................
  </item>
</tarifs>
 

Focus

Новичок
что-то ничего не понимаю там.. Объясните пожалуйста на элементарном примере
 

Focus

Новичок
PHP:
#Пишу :

include("data2.php");
$xml = new SimpleXMLElement($xmlstr);
print_r($xml->item[0]);

#Результат привожу ниже:

SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [access] => limited
        )

    [country] => SimpleXMLElement Object
        (
            [@attributes] => Array
                (
                    [code] => ua
                )

        )

    [number] => 4448
    [operatorname] => Life ()
    [operatorlatin] => Life
    [operatorfull] => Life_ua
    [abonentprice] => 10 . (UAH)  
    [price] => 10
    [currency] => UAH
    [usdprice] => 2
    [clientprofit] => 18.82
    [clientprofitusd] => 0.61463
    [operatorid] => 69
)

#Как получить доступ к 
  [@attributes] => Array
        (
            [access] => limited
        )

#и 
[country] => SimpleXMLElement Object
        (
            [@attributes] => Array
                (
                    [code] => ua
                )

        )
++++++++++++++
Почему пропадают текста если они идут в кирилице???
 

Focus

Новичок
а как можно перекодировать строку из утф в ср1251 (iconv не предлагать)?
 

vovanium

Новичок
Focus
iconv не предлагать
Интересно почему? :) А вообще можешь погуглить есть классы для перекодирования. Плюс если данные заносишь в MySQL 4.1 и выше, то тупо ставишь SET NAMES utf8, и мускуль сам преобразует данные в кодировку той таблицы куда вставляешь.
 

Focus

Новичок
не мне нужно на лету. Перекодировал в ср1251 и вывел на экран
 

Resha

Новичок
Автор оригинала: Focus
не мне нужно на лету. Перекодировал в ср1251 и вывел на экран
Все-таки, непонятно, почему iconv не устраивает? Не установлен на сервере и нет доступа для установки?
 
Сверху