Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP XML。如何检查标记的值是否为0_Php_Xml - Fatal编程技术网

PHP XML。如何检查标记的值是否为0

PHP XML。如何检查标记的值是否为0,php,xml,Php,Xml,我收到以下xml文件: <FEEDBACKLIST> <SUMMARY> <MODE>service</MODE> <VENDORLOGON/> <VENDORREF/> <TOTALSERVICECOUNT>0</TOTALSERVICECOUNT> <TOTALPRODUCTCOUNT>0</TOTALPRODUCTCOUNT> <COUNT>0</COU

我收到以下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
0
0
100
0
??
1.
20
我可以检查计数是否为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);
$curdir=getcwd();
$logon=array\u key\u存在('logon',$\u GET)$_获取['logon']:空;
$limit=array\u key\u存在('limit',$\u GET)$_GET['limit']:null;
$mode=array\u key\u存在('mode',$\u GET)$_GET['mode']:null;
$vendorref=array\u key\u存在('vendorref',$\u GET)$_GET['vendorref']:null;
$suppressnegatives=array\u key\u存在('suppressnegatives',$\u GET)$_GET['suppressnegatives']:null;
$xml_文件名=”http://www.x.com/filename/xmlfeed.jsp?logon=$logon;
如果($限额)
$xml_filename.=“&limit=”.$limit;
如果($vendorref)
$xml_filename.=“&vendorref=”.$vendorref;
如果($模式)
$xml_filename.=“&mode=”.$mode;
如果($否定)
$xml_filename.=“&negativenswered=true”;
如果(phpversion()<“5”){
$xmldoc=domxml\u open\u文件($xml\u filename);
$xsldoc=domxml\u xslt\u样式表文件($curdir./feedback.xsl”);
$result=$xsldoc->process($xmldoc);
echo$result->dump_mem();
}
其他的
$doc=新的DOMDocument();
$xsl=新的XSLTProcessor();
$doc->load($curdir./feedback.xsl”);
$xsl->importStyleSheet($doc);
$doc->load($xml\u文件名);
echo$xsl->transformToXML($doc);
我想我需要在echo发出带有getElementsbyTagName的$xsl之前检查一下,但不确定如何使用它


欢迎任何帮助

如果您需要保持PHP4支持,请享受穿越DOM的乐趣。如果可以删除它并仅支持PHP5,请使用DOMXpath::evaluate()


您发布的唯一相关代码是
$doc=newDOMDocument()
$doc->load($xml\u文件名)。您似乎在寻找关于如何使用
DOM
扩展的建议,而不是遇到标题所建议的具体问题(假设PHP/4代码是出于历史原因存在的,并且您并不真正想要维护它)。我建议你浏览文档或找到一个教程,当你掌握了基本知识后回到这里。我把完整的代码放在那里,让你清楚地了解我正在尝试做什么,所以如果有人看它,我希望它是清楚的。谢谢你的关注
$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"