【发布时间】:2016-11-13 12:52:17
【问题描述】:
我有一个类似的html
<span class="address">
<h1>Dr. Maria Steffens</h1>
<h4>Institute of Medico</h4>
<h4></h4>
<h4></h4>
<p>Sta. Ana, strt PH-501</p>
<p>1062 Caracas</p>
<p>France</p>
<br>
<p>Telefon: +58-457-2889567</p>
<p><a href="mailto:plasticsurgery@yahoo.com">plasticsurgery@yahoo.com</a></p>
<p><a href="http://">www.mysite.com</a></p>
</span>
现在我想将每个标签分开
<h1>Dr. Maria Steffens</h1>
或发生
<h4></h4> tag
我试过了
$html = new DOMDocument();
@$html->loadHtmlFile('http://www.sitetofetch.com');
$xpath = new DOMXPath( $html );
$nodelist = $xpath->query( "//*[@class='address']" );
foreach ($nodelist as $n){
$newhtml = $html->saveHtml($n)."\n";
$newhtml = htmlentities($newhtml);
$items = $html->getElementsByTagName('h1');
}
但它不能正常工作,
我该怎么做。
【问题讨论】:
-
你能再描述一下,你想要完成的事情吗?我还不是很清楚。
-
我已经抓取了 html ....,现在无论我选择什么标签,比如
xyz
。它会给我“xyz”。如果我选择pqr
。它会给我“pqr”。 -
Regex 不适合解析 html。 This question 例如通过 getElementsByTagName() 从 html 文档中获取这些标签。
-
如果我想要第二个“p”标签的内容,那么它会给我“1062 Caracas”
-
你想要完成什么?然后,您可以决定是 PHP 还是 JavaScript 合适...
标签: php regex preg-match preg-match-all strip-tags