2010-10-14 1 views
1

Рассмотрим гипотетический XML:Сохранение комплексных значений XML в PHP

<myApi xmlns="urn:something" xmlns:bla="urn:hello"> 
    <argument1>foo</argument1> 
    <argument2> 
    <p xmlns="http://www.w3.org/1999/xhtml">Some paragraph of text. <img src="http://www.example.org/hello.png" bla:test="oi" /></p> 
    </argument2> 
</myApi> 

Что бы лучший способ в PHP для синтаксического анализа из 2-й аргумент. Полная xml-структура должна храниться в базе данных, но необходимо учитывать, что она может ссылаться на уже объявленные пространства имен xml выше в документе.

Есть ли способ извлечь кусок XML с помощью любой из легко доступных библиотек разбора PHP и хранить всю семантическую информацию?

ответ

1

Вы просматривали SimpleXML? Он проводит синтаксический анализ без проверки, поэтому вы можете набросить на него любой хорошо сформированный XML и самостоятельно разобраться с действительными и недопустимыми тегами. Вы также можете вытащить фрагменты XML на любом уровне. Единственное, с чем он немного борется, - это пространства имен.

+0

Пространства имен - большая вещь для меня. SimpleXML просто даст мне «подстроку» фрагмента, но фрагмент не обязательно должен быть действительным (пропущенные пространства имен). – Evert

+0

AFAIK, его ограничение создает теги как часть пространств имен. Есть способы сделать это, но я слышу, что это мелочь неловко. Я не использовал SimpleXML для работы с тегами с именами, обратите внимание, простой, неутвержденный XML, и он отлично работает с этим. – staticsan

Смежные вопросы