【发布时间】:2020-10-10 10:35:00
【问题描述】:
所以我正在尝试使用 JS 解析数据。这是我拥有的 HTML 代码。有超过 10000 条记录需要解析。只是提几个澄清一下:
$str = '<ul>
<li>
<a href="https://www.example.com/profile/shrey">Shrey Chathly</a>
<p> shrey@yahoo.com</p>
<p> 9910212121</p>
</li>
<li>
<a href="https://www.example.com/profile/neminath">Neminath</a>
<p> 9818505051</p>
</li>
<li>
<a href="https://www.example.com/profile/mohan">Mohan</a>
<p> Mohan@yahoo.co.in</p>
<p> 9111502287</p>
</li>
<li>
<a href="https://www.example.com/profile/naina">Naina</a>
<p> naina@gmail.com</p>
<p> 9818505001</p>
</li>
<li>
<a href="https://www.example.com/profile/mohan">Rakesh</a>
<p> 9111502222</p>
</li>
</ul>';
我尝试过这样做:
$dom = new DOMDocument();
$dom->loadHTML($str);
$a = $dom->getElementsByTagName('a'); //DOMNodeList
$p = $dom->getElementsByTagName('p'); //DOMNodeList
foreach($a as $NodeHeader){
$aDataTableHeaderHTML[] = trim($NodeHeader->textContent);
}
$i = 0;
$j = 0;
foreach($p as $sNodeDetail) {
$aDataTableDetailHTML[$j][] = trim($sNodeDetail->textContent);
$i = $i + 1;
$j = $i % count($aDataTableHeaderHTML) == 0 ? $j + 1 : $j;
}
//print_r($aDataTableDetailHTML);
// out put
Array
(
[0] => Array
(
[0] => shrey@yahoo.com
[1] => 9910212121
[2] => 9818505051
[3] => Mohan@yahoo.co.in
[4] => 9111502287
)
[1] => Array
(
[0] => naina@gmail.com
[1] => 9818505001
[2] => 9111502222
)
)
我想要这样的输出:
Array
(
[0] => Array
(
[0] => Shrey Chathly
[1] => shrey@yahoo.com
[2] => 9910212121
)
[1] => Array
(
[0] => Neminath
[1] =>
[2] => 9818505051
)
[2] => Array
(
[0] => Mohan
[1] => mohan@yahoo.co.in
[2] => 9111502287
)
[3] => Array
(
[0] => Naina
[1] => naina@gmail.com
[2] => 9818505001
)
[4] => Array
(
[0] => Rakesh
[1] =>
[2] => 9111502222
)
)
我无法找到实现预期输出的方法。 请帮我。非常感谢。
【问题讨论】: