0

我是个菜鸟,我有一个问题。任何帮助将不胜感激。从下面的示例中输出带有促销代码 selma 的项目的点击次数。我可以用

 $data=simplexml_load_file("data.xml"); 

 echo $data->item[1]->clicks.'<br />';

但是有人可以告诉我如何使用属性名称输出点击的代码。就像是

 echo $data->item[selma]->clicks.'<br />';

我知道这是错误的,但我希望你能得到我的问题。任何帮助将不胜感激

<data>
 <item promocode="harry" program="250" program_name="PPS Web">
  <clicks>3730</clicks>
  <PPSWeb30>0</PPSWeb30>
  <PPSWeb75>17</PPSWeb75>
  <total>1275</total>
</item>
<item promocode="selma" program="251" program_name="PPS Mobile">
 <clicks>366</clicks>
 <PPSWeb30>0</PPSWeb30>
 <PPSWeb75>1</PPSWeb75>
 <total>75</total>
</item>
</data>
4

2 回答 2

0

这应该可以得到你想要的。您必须检查每个项目的属性并进行比较并获得点击次数。

$xml = '<data>
        <item promocode="harry" program="250" program_name="PPS Web">
          <clicks>3730</clicks>
          <PPSWeb30>0</PPSWeb30>
          <PPSWeb75>17</PPSWeb75>
          <total>1275</total>
        </item>
        <item promocode="selma" program="251" program_name="PPS Mobile">
         <clicks>366</clicks>
         <PPSWeb30>0</PPSWeb30>
         <PPSWeb75>1</PPSWeb75>
         <total>75</total>
        </item>
    </data>';

$data = simplexml_load_string($xml); 

$search_promo = "selma";

foreach ($data->item as $item) {
    $attributes = $item->attributes();
    if ($attributes["promocode"] == $search_promo) {
        $clicks = $item->clicks; // 366
        //...
    }
}
于 2013-06-27T05:47:24.943 回答
0

您可以使用 XPATH 执行此操作

$nodes = $xml->xpath('//item[@promocode="selma"]');

$item = $nodes[0];

参考这里

于 2013-06-27T05:20:30.537 回答