【问题标题】:How to get attribute of xml data without child in php如何在php中获取没有孩子的xml数据的属性
【发布时间】:2018-03-05 06:11:09
【问题描述】:

我正在尝试使用以下 xml 的 simplexml_load_stringSimpleXMLElement 使用 php 函数获取产品(despecid)节点的属性。

<productlist brand="HP" model="Color Laserjet 3000">
   <product despecid="CAN21679">IR C1021/MF8450 Fuser Unit (Fixing Assembly)</product>
   <product despecid="HPRM1-2743-180CN">CLJ 3000/3600/3800 CP3505 fuser unit</product>
   <product despecid="XER003R99755">Xerox XRC toner Q7560A black</product>  
</productlist>

但我摆脱了两个(simplexml_load_stringSimpleXMLElement)方法输出,如下所示。

object(SimpleXMLElement)#179 (2) {
["@attributes"]=>
 array(2) {
  ["Brand"]=>
    string(2) "HP"
  ["Model"]=>
    string(19) "Color Laserjet 3000"
 }
 ["Product"]=>
   array(6) {
    [0]=>
     string(44) "IR C1021/MF8450 Fuser Unit (Fixing Assembly)"
    [1]=>
     string(36) "CLJ 3000/3600/3800 CP3505 fuser unit"
    [2]=>
      string(28) "Xerox XRC toner Q7560A black"
    [3]=>
      string(27) "Xerox XRC toner Q7561A cyan"
    [4]=>
     string(29) "Xerox XRC toner Q7562A yellow"
    [5]=>
     string(30) "Xerox XRC toner Q7563A magenta"
   }
}

是否有任何方法可以获取特定于产品的属性。请帮忙...

【问题讨论】:

    标签: php xml


    【解决方案1】:
    $xml = <<<XML
    <productlist brand="HP" model="Color Laserjet 3000">
       <product despecid="CAN21679">IR C1021/MF8450 Fuser Unit (Fixing Assembly)</product>
       <product despecid="HPRM1-2743-180CN">CLJ 3000/3600/3800 CP3505 fuser unit</product>
       <product despecid="XER003R99755">Xerox XRC toner Q7560A black</product>  
    </productlist>
    XML;
    
    
    foreach (simplexml_load_string($xml)->product as $product) {
       print_r($product->attributes()->despecid); 
    }
    

    Demo

    【讨论】:

      猜你喜欢
      • 2012-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-22
      • 1970-01-01
      相关资源
      最近更新 更多