2012-12-26 38 views
1

我有這個示例代碼將提取每個標記的值。 而除此之外獲取標籤的類名..DOMDocument XPath查詢獲取類名稱和標記值

<?php 
$doc = new DOMDocument; 
$doc->loadxml(<<< eox 
<tr class="calendar_row" data-eventid="42023"> 
    <td class="date"/> 
    <td class="time">All Day</td> 
    <td class="currency">CAD</td> 
    <td class="impact"> 
     <span title="Non-Economic" class="holiday"/> 
    </td> 
    <td class="event"> 
     <span>Bank Holiday</span> 
    </td> 
    <td class="detail"> 
     <a class="calendar_detail level1" data-level="1" title="Open Detail"/> 
    </td> 
    <td class="actual"/> 
    <td class="forecast"/> 
    <td class="previous"/> 
    <td class="graph"/> 
</tr> 
eox 
); 
$xpath = new DOMXPath($doc); 

foreach($xpath->query('//tr[@data-eventid="42023"]/td[@class]') as $n) { 
    echo $n->nodeName.'-'.$n->nodeValue."<br />"; 
} 
?> 

使用上面的代碼片段,我要的是讓這些值即使一些標籤的arent良好的格式化(IM報廢Web源)..我如何在DOMDocument XPath查詢中執行此操作。我有麻煩「導致被讀取值是:

td- 
td-All Day 
td-CAD 
td- 
td-Bank Holiday 
td- 
td- 
td- 
td- 
td- 

代替:

date- 
time-All Day 
currency-CAD 
impact- 
event-Bank Holiday 
detail- 
actual- 
forecast- 
previous- 
graph- 

回答

1
echo $n->getAttribute("class") . '-' . $n->nodeValue . "<br />";