Создание XML из списка HTML с помощью PHP

Я хотел бы преобразовать структуру списка в html:

<ul> <li>Section 1</li> <li>Section 2 <ul> <li>Section 2.1</li> <li>Section 2.2</li> </ul> </li> <li>Section 3</li> </ul> 

В XML:

 <sections> <section> <caption>Section 1</caption> <level>0</level> </section> <section> <caption>Section 2</caption> <level>0</level> </section> <section> <caption>Section 2.1</caption> <level>1</level> </section> <section> <caption>Section 2.2</caption> <level>1</level> </section> <section> <caption>Section 3</caption> <level>0</level> </section> </sections> 

Я попытался использовать PHP SimpleXML для чтения в html, но у него, похоже, проблема, когда он встречает <ul> внутри тега <li> .

Интересно, может ли кто-нибудь предложить любезно сказать, что самый простой способ сделать это в PHP?

Огромное спасибо вам всем.

Solutions Collecting From Web of "Создание XML из списка HTML с помощью PHP"

Вы всегда можете просто проанализировать этот HTML-код в своей структуре XML. Что-то вроде этого:

Предположим, что ваш HTML-код находится на странице с именем «sections.html». Это один из способов сделать то, что вы хотите сделать:

 <?php # Create new DOM object $domOb = new DOMDocument(); # Grab your HTML file $html = $domOb->loadHTMLFile(sections.html); # Remove whitespace $domOb->preserveWhiteSpace = false; # Set the container tag $container = $domOb->getElementsByTagName('ul'); # Loop through UL values foreach ($container as $row) { # Grab all <li> $items = $row->getElementsByTagName('li'); # echo the values echo $items->item(0)->nodeValue.'<br />'; echo $items->item(1)->nodeValue.'<br />'; echo $items->item(2)->nodeValue; # You could write to your XML file, store in a string, anything here } ?> 

Я не проверял это, но это общая идея.

Надеюсь это поможет.