我有一个格式化的html字符串,其中包含一些UL元素,并希望将其分解为一个php数组。
赞:
<ul>
<li>List 1
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
</li>
<li>List 2
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
</li>
<li>List 3
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
</li>
</ul>
我正在寻找的是将第一级li标签(包括其中的内容/结构)放入php数组的解决方案。我尝试过.split,但是它很脆弱。被困在DOMXpath ...有人吗?
答案 0 :(得分:0)
$str = '<ul>
<li>List 1
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
</li>
<li>List 2
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
</li>
<li>List 3
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
</li>
</ul>';
$doc = new DOMDocument();
$doc->loadHTML($str);
$elements = $doc->getElementsByTagName('body')->item(0)->childNodes;
$data = array();
foreach ($elements as $node) {
foreach ($node->childNodes as $child) {
$data[]=$doc->saveHtml($child);
}
}
foreach($data as $d)
echo $d;