2017-05-04 122 views
1

我从来没有使用过dom文档,需要一些帮助。
我试图看看其他线程和其他教程,但我不明白我做错了。Dom文档解析

这是该页面:https://aro.lfv.se/Links/Link/ViewLink?TorLinkId=310&type=MET
这是html的一小部分;

 <h1 class="tor-link-header">&#214;versikt</h1> 
      <pre class="linkTextNormal">&#214;VERSIKT F&#214;R OMR&#197;DE E UTF&#196;RDAD 040753 
G&#196;LLANDE DEN 4 MAJ 2017 MELLAN 08 OCH 16 UTC 


V&#228;der&#246;versikt 
Se v&#228;der&#246;versikt f&#246;r omr&#229;de A+B 

Sikt under 5 kilometer eller molnbas under 1000 fot 
V&#228;ntas inte f&#246;rekomma under perioden. 

M&#229;ttlig eller sv&#229;r isbildning 
V&#228;ntas inte f&#246;rekomma under perioden 

M&#229;ttlig eller sv&#229;r turbulens 
08-16UTC: I hela omr&#229;det</pre> 
     <h1 class="tor-link-header">Hela Omr&#229;de E</h1> 
      <pre class="linkTextNormal">PROGNOS F&#214;R OMR&#197;DE J UTF&#196;RDAD 040753 
G&#196;LLANDE DEN 4 MAJ 2017 MELLAN 08 OCH 16 UTC 

我发现,在整个HTML有只有两个<pre>标签,两者是对我有意思。

我发现这个代码(微调它适合我的代码),但它不起作用。

$doc = new DOMDocument(); 
$doc->load($URL_LHP); 

$Parts = $doc->getElementsByTagName('pre'); 
$Part = $Parts->item(0); 
var_dump($Part); 

foreach($Parts as $Part){ 
    echo $Part; 
} 

var_dump返回NULL,并且echo不返回任何内容。 $ URL_LHP是字符串格式的HTML。
如果我回显$ URL_LHP它将回显网页,但与“死”的图像,没有CSS。
所以这个变量就是我所期望的。

任何人都可以帮助我吗?

+1

它通常不是一个好主意,有有也多一个变量名,即'部分'和'部件'在你的情况下。这是因为只有一个字母差异,在发生错误时很难发现。 –

+0

真的..但现在我只是想让它工作,后来我可以理清微调。正如我所说我找到了代码。 – Andreas

+0

首先检查'$ doc-> load'的返回值,看看DomDocument是否能够解析输入数据。 – CBroe

回答

1

这可能会为你工作:

$html = file_get_contents("https://aro.lfv.se/Links/Link/ViewLink?TorLinkId=310&type=MET"); 
$dom = new DOMDocument(); 
@$dom->loadHTML($html); 
$pres = $dom->getElementsByTagName('pre'); 

foreach($pres as $pre) 
{ 
    print $pre->nodeValue; 
} 

输出继电器:

ÖVERSIKT FÖR OMRÅDE E UTFÄRDAD 040753 
GÄLLANDE DEN 4 MAJ 2017 MELLAN 08 OCH 16 UTC 
... 
+0

它输出一些东西。所以它似乎工作。谢谢! – Andreas

+1

我还不能接受。另外2分钟 – Andreas

+1

58秒钟.... – Andreas