我在变量中有HTML DOM,我需要将所有第一级子节点以相同的顺序分离到数组中。例如,我有:
1.7.0
我需要这个结果:
<h1>Indice</h1>
<p class="l3"><a href="#c1" class="ddb1a">I. El Censo</a></p>
<p class="l3"><a href="#c2" class="ddb1a">II. Leyes diversas</a></p>
<p class="l3">
<a href="#c3" class="ddb1a">III. Ofrenda de los Jefes y consagración de los levitas</a>
</p>
注意:
请注意,我不能信任New Lines这样做,因为有些孩子可能会使用新行,例如第3 array (
'<h1>Indice</h1>',
'<p class="l3"><a href="#c1" class="ddb1a">I. El Censo</a></p>',
'<p class="l3"><a href="#c2" class="ddb1a">II. Leyes diversas</a></p>',
'<p class="l3">
<a href="#c3" class="ddb1a">III. Ofrenda de los Jefes y consagración de los levitas</a>
</p>'
);
页的a
标记。
答案 0 :(得分:0)
您可以尝试使用DOMDocument
来解析HTML并获取所需的标记。
以下是一些符合您所描述内容的代码......
<?php
// Your HTML you provided
$html = <<<HTML
<h1>Indice</h1>
<p class="l3"><a href="#c1" class="ddb1a">I. El Censo</a></p>
<p class="l3"><a href="#c2" class="ddb1a">II. Leyes diversas</a></p>
<p class="l3">
<a href="#c3" class="ddb1a">III. Ofrenda de los Jefes y consagración de los levitas</a>
</p>
HTML;
// Create a DOM document
$dom = new DOMDocument ();
// Load the HTML
$dom->loadHTML ($html);
// Get the <body> tag
$bodys = $dom->getElementsByTagName ('body');
$body = $bodys->item (0);
// The HTML array you want
$html_array = array ();
// Run through each tag, and convert them to HTML strings
foreach ($body->childNodes as $child) {
if ($child instanceof DOMElement) {
$html_array[] = $dom->saveHTML ($child);
}
}
// And lastly, display the array
print_r ($html_array);