2011-12-16 288 views
1

我無法從xml字符串獲取值。 $ query_return_string包含以下內容作爲一個字符串:無法通過php獲取xpath的值

<?xml version="1.0" encoding="UTF-8"?> 
<sparql xmlns="http://www.w3.org/2001/sw/DataAccess/rf1/result"> 
    <head> 
    <variable name="label"/> 
    </head> 
    <results> 
    <result> 
     <label>Demo sports 3</label> 
    </result> 
    </results> 
</sparql> 

這是PHP代碼:

<?php 
if ($query_return_string) { 
    $query_return_dom = DOMDocument::loadXML($query_return_string); 

    $xpath_dom = new DOMXPath($query_return_dom); 

    $xpath = '//label'; 

    $entries = $xpath_dom->query($xpath); 
    dsm($entries->length); 
    // /sparql/results/result/label 
} 
?> 

我還沒有打擾試圖去在對象上獲得的價值,因爲$ entries- >長度返回0. 我可能做錯了什麼?這看起來很基本。

回答

3

您需要註冊名稱空間。

$xpath_dom->registerNamespace('sw', 'http://www.w3.org/2001/sw/DataAccess/rf1/result'); 
$xpath = '//sw:label'; 

+0

真棒 - 這就是它! – 2011-12-16 18:13:12