2014-03-12 75 views
0

我收到下面的XML文件:PHP XML。如何檢查是否變量的值是0

<FEEDBACKLIST> 
<SUMMARY> 
<MODE>service</MODE> 
<VENDORLOGON/> 
<VENDORREF/> 
<TOTALSERVICECOUNT>0</TOTALSERVICECOUNT> 
<TOTALPRODUCTCOUNT>0</TOTALPRODUCTCOUNT> 
<COUNT>0</COUNT> 
<TITLE/> 
<BEST>100</BEST> 
<WORST>0</WORST> 
<AVERAGE>??</AVERAGE> 
<START>1</START> 
<LIMIT>20</LIMIT> 
</SUMMARY> 
</FEEDBACKLIST> 

我可以檢查計數爲0,如果是,我想重新發送帶有不同參數的XML請求。

我收到這樣說:

$curdir = getcwd(); 




$logon = array_key_exists('logon', $_GET) ? $_GET['logon'] : null; 
$limit = array_key_exists('limit', $_GET) ? $_GET['limit'] : null; 
$mode = array_key_exists('mode', $_GET) ? $_GET['mode'] : null; 
$vendorref = array_key_exists('vendorref', $_GET) ? $_GET['vendorref'] : null; 
$suppressnegatives = array_key_exists('suppressnegatives', $_GET) ? $_GET['suppressnegatives'] : null; 

$xml_filename = "http://www.x.com/filename/xmlfeed.jsp?logon=".$logon; 
if ($limit) 
    $xml_filename .= "&limit=".$limit; 
if ($vendorref) 
    $xml_filename.="&vendorref=".$vendorref; 
if ($mode) 
    $xml_filename.="&mode=".$mode; 
if ($suppressnegatives) 
    $xml_filename.="&negativesanswered=true"; 



if (phpversion() < "5"){ 
    $xmldoc = domxml_open_file($xml_filename); 
    $xsldoc = domxml_xslt_stylesheet_file ($curdir."/feedback.xsl"); 
    $result = $xsldoc->process($xmldoc); 
    echo $result->dump_mem(); 
} 
else 
    $doc = new DOMDocument(); 
    $xsl = new XSLTProcessor(); 
    $doc->load($curdir."/feedback.xsl");  
    $xsl->importStyleSheet($doc); 
    $doc->load($xml_filename); 
    echo $xsl->transformToXML($doc); 

我想我需要檢查它呼應之前的出$ XSL的getElementsByTagName用,但不知道如何使用這個。

任何幫助,歡迎

+0

你張貼的唯一相關的代碼是'$ DOC =新的DOMDocument();'和'$ doc->負載($ xml_filename);'。標題建議的問題不在於具體問題,而在於如何使用DOM擴展(假設PHP/4代碼出於歷史原因而不想維護它) 。我建議你瀏覽文檔或找到一個教程,當你有基本知識時回到這裏。 –

+0

我把完整的代碼放在那裏,讓我清楚地知道我正在做什麼,所以如果有人看到它,我希望它很清楚。感謝您的期待 – Ria

回答

0

如果你需要保持PHP 4的支持,有樂趣遍歷DOM。如果您可以刪除它並僅支持PHP 5,請使用DOMXpath :: evaluate()。

$xml = '<FEEDBACKLIST><SUMMARY><COUNT>0</COUNT></SUMMARY></FEEDBACKLIST>'; 

$dom = new DOMDOcument(); 
$dom->loadXml($xml); 
$xpath = new DOMXpath($dom); 

var_dump($xpath->evaluate('string(/FEEDBACKLIST/SUMMARY/COUNT)')); 

輸出:

string(1) "0"