Я хотел бы преобразовать структуру списка в 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?
Огромное спасибо вам всем.
Вы всегда можете просто проанализировать этот 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 } ?>
Я не проверял это, но это общая идея.
Надеюсь это поможет.