Хранение сложных значений XML в PHP - PullRequest
1 голос
/ 15 октября 2010

Рассмотрим этот гипотетический XML:

<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 Ответ

1 голос
/ 15 октября 2010

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

...