PHP XML.如何检查标签值是否为0



我正在接收以下XML文件:

<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);

我认为我需要在带有getElementsbytagname的$ XSL之前检查一下,但不确定如何使用此。

任何帮助欢迎

如果您需要保留PHP 4的支持,请在DOM上享受乐趣。如果您可以删除并仅支持PHP 5使用DomxPath :: evaliate()。

$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"

相关内容

最新更新