Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Обработка нестандартного XML


Автор: abalich 9.2.2009, 16:30
Всем привет.
У меня стоит такая вот задача.
 вот пример xml
    
Код

<groups>
      <group>
          <name>baby</name>
          <gorups>
                 <group>
                      <name>vasya</name>
                 </group>
                 <group>
                      <name>vasya 1</name>
                 </group>
                 <group>
                      <name>vasya 2</name>
                       <groups>
                              <group><name>Васина жена</name></group>
                       </groups>
                 </group>

          </groups>
      </group>
</groups>


ВОт примерно вид. Если заметили то так есть group и groups

Оно имеет деревовидное строение.
смысл такой groups может содержать в себе только group.
group может содержать name а так же еще groups которая в себе может содержать group и т.д.

не могу написать парсер. preg_match_all("'<Groups>(.*?)</Groups >'si",$xml,$group);
не кактит. естественно.






Автор: skyboy 9.2.2009, 16:46
    почему бы не использовать один из http://ua.php.net/manual/en/refs.xml.php обработки XML?

Автор: abalich 9.2.2009, 16:52
skyboy, я их юзать не умею. Поэтому и написал вопрос.

Автор: lelik133 9.2.2009, 17:13
разбирать xml регулярками, это извращение и моветон.
учитесь пользоваться специальными инструментами. в них нет ничего сложного, и при этом они очень удобны

Автор: Canarat 9.2.2009, 19:22
Начните с SimpleXML, потом перейдите на что-нибудь побыстрее и более тонкое в настройке. По этому примеру даже без английского языка все понятно:
http://ua.php.net/manual/en/simplexml.examples-basic.php

Автор: abalich 9.2.2009, 22:55
Canarat, все работает. но для меня не подходит т.к. у меня теги русскими символами т.е. <Группы>  и.т.д

Автор: Canarat 9.2.2009, 23:16
В сущности, спецификация XML позволяет любые символы использовать:
Цитата

Non-English letters like éòá are perfectly legal in XML, but watch out for problems if your software vendor doesn't support them.

(с) http://www.w3schools.com/Xml/xml_elements.asp (да, это не спецификация, но ресурс имеет право быть авторитетным)
Установить локаль нужную, и libxml тот же должен спокойно произвести обработку.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)