简体   繁体   English

从xml文件获取属性的值,然后在php字符串中使用它?

[英]Get the value of an attribute from xml file then use it in a string with php?

This might seem easy but I can't get my head around it: I have the following incoming xml 这似乎很容易,但是我无法解决:我有以下传入的xml

<FEEDBACKLIST>
<SUMMARY>
<MODE>product</MODE>
<VENDORLOGON>www.shoponline.co.uk</VENDORLOGON>
<VENDORREF>498</VENDORREF>
<TOTALSERVICECOUNT>1</TOTALSERVICECOUNT>
<TOTALPRODUCTCOUNT>1</TOTALPRODUCTCOUNT>
<COUNT>1</COUNT>
<SUPPLIERLOGO>
http://www.feefo.com/feefo/getnonpublicfile.jsp?vendorimage=777327&vendorimageext=file.png
</SUPPLIERLOGO>
<TITLE>Kawai ES100 Piano</TITLE>
<BEST>100</BEST>
<WORST>0</WORST>
<AVERAGE>100</AVERAGE>
<START>1</START>
<LIMIT>20</LIMIT>
<SERVICEEXCELLENT>1</SERVICEEXCELLENT>
<SERVICEGOOD>0</SERVICEGOOD>
<SERVICEPOOR>0</SERVICEPOOR>
<SERVICEBAD>0</SERVICEBAD>
<PRODUCTEXCELLENT>1</PRODUCTEXCELLENT>
<PRODUCTGOOD>0</PRODUCTGOOD>
<PRODUCTPOOR>0</PRODUCTPOOR>
<PRODUCTBAD>0</PRODUCTBAD>
<TOTALRESPONSES>18</TOTALRESPONSES>
<FEEDGENERATION>Wed Mar 12 16:05:57 GMT 2014</FEEDGENERATION>
<PRODUCTLINK>
http://shop.co.uk/product.php?id=498-Kawai-ES100-Digital-Piano-in-Black
</PRODUCTLINK>
</SUMMARY>
<FEEDBACK>
<FEEDBACKID>117</FEEDBACKID>
<COUNT>1</COUNT>
<DATE>05-Mar-2014</DATE>
<HREVIEWDATE>2014-03-05T20:07:39</HREVIEWDATE>
<DESCRIPTION>Kawai ES100 Piano</DESCRIPTION>
<PRODUCTCODE>498</PRODUCTCODE>
<LINK>
http://shop.co.uk/product.php?id=498-Kawai-ES100-Digital-Piano-in-Black
</LINK>
<FACEBOOKSHARELINK>
http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.feefo.com%2FGB%2Fen%2Freviews%2Fbla%2F%3Fid%3D777327%26servicefeedbackid%3D117
</FACEBOOKSHARELINK>
<HREVIEWRATING>5</HREVIEWRATING>
<PRODUCTRATING>++</PRODUCTRATING>
<CUSTOMERCOMMENT>Great digital piano</CUSTOMERCOMMENT>
<SHORTCUSTOMERCOMMENT>Great digital piano</SHORTCUSTOMERCOMMENT>
<READMOREURL>
http://www.feefo.com/GB/en/reviews/Keysound/?id=777327&productfeedbackid=117
</READMOREURL>
</FEEDBACK>
</FEEDBACKLIST>

I have been trying to get the SUMMARRY COUNT into a string and then use it to see if it is 0 and if not do something if it is do something else: 我一直在尝试将SUMMARRY COUNT转换为字符串,然后使用它来查看它是否为0,如果不执行其他操作,则不执行以下操作:

please have a look at my code: 请看一下我的代码:

 $xml = simplexml_load_string($xml_filename);
 $count= array((string) $xml->FEEDBACKLIST->SUMMARY->COUNT);
    if ($count == "0"){

        $doc = new DOMDocument();
    $xsl = new XSLTProcessor();
    $doc->load($curdir."/feedback.xsl");
    $xsl->importStyleSheet($doc);
    $doc->load($xml_filename2);
    echo $xsl->transformToXML($doc);
    }
    else{
    $doc = new DOMDocument();
    $xsl = new XSLTProcessor();
    $doc->load($curdir."/feedback.xsl");
    $xsl->importStyleSheet($doc);
    $doc->load($xml_filename);
    echo $xsl->transformToXML($doc);    
    }

Can anybody suggest how to do this s this doesn't work 有人可以建议怎么做吗,这是行不通的

If you define $count as array , you have to check against this array in your if -statement: 如果将$count定义为array ,则必须在if -statement中对此数组进行检查:

if ($count[0] == "0") { // see the index: [0]

As an alternative, don't define $count as array and leave the if -statement as it is: 或者,不要将$count定义为array而将if -statement保留为:

$count = (string)$xml->SUMMARY->COUNT;

Note: your XML's root <FEEDBACKLIST> is represented in $xml , so do not repeat it. 注意:XML的根<FEEDBACKLIST>$xml表示,因此请勿重复。

Here's a working demo: https://eval.in/119164 这是一个工作示例: https : //eval.in/119164

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM