2015-03-02 33 views
0
SimpleXMLElement Object 
(
    [EXPORT-RECORDS] => SimpleXMLElement Object 
     (
      [PRODUCT] => Array 
       (
        [0] => SimpleXMLElement Object 
         (
          [PRODUCTS_NAME] => Panasonic Super Heavy Duty Battery AA - 4 Pack 
          [PRODUCTS_DESCRIPTION] => Batteries keep going and going and going until they don\'t. And there\'s nothing more disappointing than 

         ) 

        [1] => SimpleXMLElement Object 
         (
          [PRODUCTS_NAME] => Panasonic Super Heavy Duty Battery AA - 4 Pack 
          [PRODUCTS_DESCRIPTION] => Batteries keep going and going and going until they don\'t. And there\'s nothing more disappointing than 
         ) 

       ) 

     ) 

) 

这是我在print_r($xml);我怎么循环[0],[1]和访问其元素。我需要每个产品的[PRODUCTS_NAME]。任何帮助,将不胜感激。访问元素和循环通过在PHP

回答

2
$xml = <<<XML 

<EXPORT-RECORDS> 
     <PRODUCT> 
      <PRODUCTS_NAME>Panasonic Super Heavy Duty Battery AA - 4 Pack</PRODUCTS_NAME> 
      <PRODUCTS_DESCRIPTION>Batteries keep going and going and going until they don\'t. And there\'s nothing more disappointing than </PRODUCTS_DESCRIPTION> 
     </PRODUCT> 
     <PRODUCT> 
      <PRODUCTS_NAME>Panasonic Super Heavy Duty Battery AA - 4 Pack</PRODUCTS_NAME> 
      <PRODUCTS_DESCRIPTION>Batteries keep going and going and going until they don\'t. And there\'s nothing more disappointing than</PRODUCTS_DESCRIPTION> 
     </PRODUCT> 
</EXPORT-RECORDS> 
XML; 

$xml = simplexml_load_string($xml); 

foreach($xml->PRODUCT as $PRODUCT){ 
    echo $PRODUCT->PRODUCTS_NAME; 
} 

https://ideone.com/19AMTL

1
foreach($SimpleXMLElement['EXPORT-RECORDS']['PRODUCT'] as $Key => $Dataset){ 
    /* Do whatever you want with $Key and $Dataset */ 
} 

该循环应该这样做。作为一个例子,

echo $Dataset['PRODUCTS_NAME']; 

将放置在Loop的主体中,回显所有产品名称。

+1

我认为这是值得一提的是'$ Dataset'(哦,我不喜欢大写的变量,请不要介意:P)是SimpleXMLElement'类的'实例。 – Forien 2015-03-02 14:16:09