2012-08-02 78 views
1

我有我的web服務, 生成一個XML文件,我現在想從XMLPHP和XML錯誤

在XML中的所有標籤都在同一水平線上顯示一些信息,沒有層次。

不過,我有這些標記對文檔的兩側,即:

<xml version="1.0" encoding="ISO-8859-1"><xmlresponse> 

和:

</xmlresponse></xml> 

AFIN D'utiliser UNE應答器和de l'afficher J'AI donc樂代碼suivant:

<?php 
$document_xml = new DomDocument(); 
$resultat_html = ''; 
$document_xml->load('tmp/'.$_GET['n_doss'].'.xml'); 
//echo $elements = $document_xml->getElementsByTagName('rating'); 


$title = $document_xml->xpath('rating'); 
echo trim($title[0]); 
?> 

不過,我轉發一個錯誤信息說:

Fatal error: Call to undefined method DOMDocument :: xpath() 

我不知道該如何解決。

非常感謝您的幫助。

回答

2

檢查您的xml文件是否有效,請使用DomDocument正確加載。爲什麼你不使用SimpleXML庫?它還支持XPath表達方式如下:

$simplexml= new SimpleXMLElement($xml); // loading RAW XML string `$xml` retrieved from WebService 
$items = $simplexml->xpath('/rating'); // querying DOM to retrieve <rating></rating> from the root of of the structure 
echo $items[0]; // getting result 

注:DomDocument沒有xpath方法。使用query方法XPath表達適用於對象使用DomXPath這樣的:

$dom = new DomDocument(); 
$dom->load('tracks.xml'); 
$xpath = new DOMXPath($dom); 
$query = '//distance[. > "15000"]'; 
$distances = $xpath->query($query); 
+0

我只是想顯示從XML文件中的一些元素。 xml文件是有效的,因爲它是由我的web服務生成的 – 2012-08-02 12:15:23

+0

@StanislasPiotrowski,使用'DOMXPath'將'XPath'表達式應用於已經加載的'DomDocument'。 – 2012-08-02 12:16:57

+0

現在它說: 致命錯誤:帶有消息'SimpleXMLElement :: __ construct()的未捕獲異常'異常'期望參數1是在C:\ wamp \ www \ NEOGETCASH \ GESTIONNAIRE \ DOSSIERS \ creditsafe中給出的字符串,對象。例如:SimpleXMLElement :: __ construct()期望參數1是字符串,對象在第31行給出在C:\ wamp \ www \ NEOGETCASH \ GESTIONNAIRE \ DOSSIERS \ creditsafe.php – 2012-08-02 12:17:18

1

我不認爲DOMDocument有一個xpath方法。相反,您可以使用DOMXPath類。

試試這個:

$xpath = new DOMXPath($document_xml); 
$ratings = $xpath->query('rating'); 
+0

niw它對我說 可捕獲的致命錯誤:類DOMNodeList的對象無法轉換爲C中的字符串 – 2012-08-02 12:14:22