我收到以下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>
我可以检查COUNT是否为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但不确定如何使用它。
欢迎任何帮助
答案 0 :(得分: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"