Autor | Zpráva | ||
---|---|---|---|
filio Profil * |
#1 · Zasláno: 16. 10. 2012, 23:33:07
Zdravím,
opravdu, už si nevím rady. S XPath teprve začínám. Nikde na internetu to nemůžu dohledat. Jak získat jednu proměnnou to vím, ale jak jich získat více z $nodelist to nevím. Potřeboval bych načíst data z HTML do proměnných: $nadpis, $textBold, $link. Mockrát děkuji za každou radu. <?php $html = <<<HTML <html> <head> <title>A test page</title> </head> <body> <div class='item'> <div class='title'><h3>1. nadpis<h3><title> <b>1. Text bold</b> <a href="http://www.example.com">1. link</a> </div> <div class='item'> <div class='title'><h3>2. nadpis <h3><title> <b>2. Text bold</b> <a href="http://www.example.com">2. link</a> </div> </body> </html> HTML; $htmlDoc = new DOMDocument(); $htmlDoc->loadHTML($html); $xpath = new DOMXPath($htmlDoc); $nodelist = $xpath->query("//div[@class='item']"); foreach ($nodelist as $n){ echo $n->nodeValue."<br />"; //echo $nadpis; //echo $textBold; //echo $link; } ?> |
||
filio Profil * |
#2 · Zasláno: 17. 10. 2012, 15:19:08
Tak nakonec mi poradil kolega. Chyba byla také v HTML, které se mělo parsovat na místo <title> má být samozřejmě </div>.
Funkční řešení přikládám níže. V Diskusi můžete zamknout. <?php $html = <<<HTML <html> <head> <title>A test page</title> </head> <body> <div class='item'> <div class='title'><h3>1. nadpis<h3></div> <b>1. Text bold</b> <a href="http://www.example.com">1. link</a> </div> <div class='item'> <div class='title'><h3>2. nadpis <h3></div> <b>2. Text bold</b> <a href="http://www.example.com">2. link</a> </div> </body> </html> HTML; $htmlDoc = new DOMDocument(); $htmlDoc->loadHTML($html); $xpath = new DOMXPath($htmlDoc); $nodelist = $xpath->query("//div[@class='item']"); foreach ($nodelist as $n){ $nadpis = $xpath->evaluate('string(div[@class="title"]/h3)', $n); $textBold = $xpath->evaluate('string(b[1])', $n); $link = $xpath->evaluate('string(a[1]/@href)', $n); echo $nadpis.'<br /> '; echo $textBold.'<br />'; echo $link.'<br /> '; } ?> |
||
Časová prodleva: 12 let
|
0