2012-03-16 31 views
1

我對php有問題, 如果我在下面實現這個代碼,那麼什麼都不會發生。如何在php中加載一個xml文件,以便我可以使用它的xpath?

$filename = "/opt/olat/olatdata/bcroot/course/85235053647606/runstructure.xml"; 
if (file_exists($filename)) { 
$xml = simplexml_load_file($filename, 'SimpleXMLElement', LIBXML_NOCDATA); 
// $xpath = new DOMXPath($filename); 
} 
$doc = new DOMDocument(); 
$doc->loadXML($xml); 
$xpath = new DOMXpath($doc); 

$res = $xpath->query('/org.olat.course.Structure/rootNode/children/org.olat.course.nodes.STCourseNode/shortTitle'); 

foreach ($res as $entry) { 
    echo "{$entry->nodeValue}<br/>"; 
} 

如果我改變$ XML的內容,在內容與$文件名的內容

$xml = '<org.olat.course.Structure><rootNode class="org.olat.course.nodes.STCourseNode"> ... '; 

然後它工作,所以我覺得有什麼不對加載xml文件的方法, 我也嘗試加載xml文件作爲Domdocument,但它也不會工作。 而且在這兩種情況下,如果我通過xml收集xml數據,例如本作品

echo $ Course_name = $ xml-> rootNode-> longTitle;

回答

2

loadXML需要作爲輸入,而不是simplexml_load_file返回值。只需使用file_get_contents即可獲取文件的(全部)內容字符串

+0

它的工作原理 - 謝謝。 你已經告訴answere,而我正在尋找超過2小時 再次謝謝:) – Dieter 2012-03-16 23:29:51

相關問題