2017-08-15 51 views
0

我有这个HTML代码....提取的XPath的HTML代码

..... 
..... 
..... 
<div class="bloccoOspedale"> 
<div id="nomeOspedale"> 
    <div class="datiOspedale">Pazienti in corso di visita: 2 di cui in O.B.I.: 0</div> 
    <div class="datiOspedaleCodici"> 
    <div class="codBianco">Codice bianco:0</div> 
    <div class="codVerde">Codice verde:1</div> 
    <div class="codGiallo">Codice giallo:1</div> 
    <div class="codRosso">Codice rosso:0</div> 
    </div> 
    <div class="datiOspedale">Pazienti in attesa di visita: 0</div> 
</div> 
<div class="bloccoOspedale"> 
    <div id="nomeOspedale"> 
    <div class="datiOspedale">Pazienti in corso di visita: 23 di cui in O.B.I.: 0</div> 
    <div class="datiOspedaleCodici"> 
    <div class="codBianco">Codice bianco:1</div> 
    <div class="codVerde">Codice verde:9</div> 
    <div class="codGiallo">Codice giallo:11</div> 
    <div class="codRosso">Codice rosso:2</div> 
    </div> 
    <div class="datiOspedale">Pazienti in attesa di visita: 10</div> 
</div> 
<div class="bloccoOspedale"> 
    <div id="nomeOspedale"> 
    <div class="datiOspedale">Pazienti in corso di visita: 16 di cui in O.B.I.: 2</div> 
    <div class="datiOspedaleCodici"> 
    <div class="codBianco">Codice bianco:0</div> 
    <div class="codVerde">Codice verde:9</div> 
    <div class="codGiallo">Codice giallo:7</div> 
    <div class="codRosso">Codice rosso:0</div> 
    </div> 
    <div class="datiOspedale">Pazienti in attesa di visita: 6</div> 
    </div>  
..... 
..... 
..... 

,我已经提取字符串 “Codice比安科:0” 在PHP中使用XPath ... 我已经试过

//div[@class="datiOspedaleCodici"]/div[1]/text() 

//div[@class="datiOspedaleCodici"]/div[@class="codBianco"]/text() 

但没有任何反应....

什么是正确的XPath?

预先感谢您...

UPDATE

我试图用这个PHP代码示例...

<?php 
    ini_set('display_errors', 1); 

    $url = 'http://www.asl1.liguria.it/templateProntoSoccorso.asp'; 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); 
    curl_setopt($ch, CURLOPT_PROXY, ''); 
    $data = curl_exec($ch); 
    curl_close($ch); 

    $dom = new DOMDocument(); 
    @$dom->loadHTML($data); 

    $xpath = new DOMXPath($dom); 

    $Number = $xpath->query('//div[@class="datiOspedaleCodici"]/div[@class="codBianco"]/text()'); 

    foreach($Number as $node) 
    { 
     echo "Number: " .$node->nodeValue; 
     echo '<br>'; 
     echo '<br>'; 
    }  
?> 

...使更清楚我什么需要.....代码运行没有错误,但没有任何打印...

+1

在Chrome中打开该页面。打开开发者工具。在源代码中找到您需要的元素,然后单击复制xpath。完成 – khuderm

+0

正是我所做的(使用Firefox .....),但它不工作.... – Cesare

回答

1

使用您的XML片段,下面的代码...

$doc = new SimpleXMLElement ($xml); 
$text = $doc->xpath('//div[@class="datiOspedaleCodici"]/div[@class="codBianco"]/text()'); 
foreach ($text as $t) { 
    echo $t.PHP_EOL; 
} 

事实上确实回声......

Codice bianco:0 
Codice bianco:1 
Codice bianco:0 
+0

#Nigel我更新了我的原始问题,我用一个小的代码示例,我用来测试.. ...它看起来与你的非常相似(你使用SimpleXMLElement,我使用DOMXPath,它适用于我的代码中的sampe“业务案例中的其他案例,所以我不想改变......),但不幸的是我的代码?打印什么建议 – Cesare

+1

我只是剪切和粘贴代码,它给我'编号:Codice比安科:0

编号:Codice比安科:1个

编号:Codice比安科:0

'你可以把' echo“Loaded:”。$ dom-> saveXML();'在你的'loadHTML'行之后,检查你是否得到了一些输出结果 –

+0

这就是我想要得到的结果!!! ....很奇怪在我的情况下,它是不工作....无论如何,我知道我的代码是正确的....谢谢! – Cesare