2013-03-20 70 views
0

我试图分析出如下回应:的SimpleXMLElement解析问题与PHP

SimpleXMLElement Object ( 
    [responseType] => SimpleXMLElement Object ( 
     [inputConceptName] => aspirin [inputKindName] => %) 
    [groupConcepts] => SimpleXMLElement Object ( 
     [concept] => Array ( 
      [0] => SimpleXMLElement Object ( 
       [conceptName] => ASPIRIN 
       [conceptNui] => N0000145918 
       [conceptKind] => DRUG_KIND) 
      [1] => SimpleXMLElement Object (# 
       [conceptName] => Aspirin 
       [conceptNui] => N0000006582 
       [conceptKind] => INGREDIENT_KIND) 
))) 
在PHP

。我把它保存为一个字符串卷曲:

$xml = simplexml_load_string($data); 
print_r($xml); 

如何获得的第一个对象只是conceptNui作为PHP变量?

回答

1

看看文档,它给简单的例子来了解友好的语法来提取数据:

http://www.php.net/manual/en/simplexml.examples-basic.php

你的情况,则可能是:

$xml->groupConcepts->concept[0]->conceptNui 

由于你的结构是

SimpleXMLElement Object ( 
    [responseType] => SimpleXMLElement Object ( 
    [inputConceptName] => aspirin 
    [inputKindName] => %) 
    [groupConcepts] => SimpleXMLElement Object ( 
    [concept] => Array ([0] => SimpleXMLElement Object ( 
        [conceptName] => ASPIRIN 
        [conceptNui] => N0000145918 
        [conceptKind] => DRUG_KIND) 
       [1] => SimpleXMLElement Object ( 
        [conceptName] => Aspirin 
        [conceptNui] => N0000006582 
        [conceptKind] => INGREDIENT_KIND) 
      ) 
     ) 
) 
+0

我认为你的答案是对的,只是试图扼杀最后一块。我如何让最后一部分成为一个实际的PHP变量? $ ch = curl_init(); curl_setopt($ ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ ch,CURLOPT_URL,$ url); $ data = curl_exec($ ch); curl_close($ ch); $ xml = simplexml_load_string($ data); $ xml-> groupConcepts-> concept [0] - > conceptNui; – NCoder 2013-03-20 05:18:21

+0

'$ conceptNui = $ xml-> groupConcepts-> concept [0] - > conceptNui;'? – MatRt 2013-03-20 05:25:23

1
$conceptNui = $mainObj->groupConcepts->concept[0]->conceptNui;