2012-03-28 26 views
0

訪問元素我具有低於一個XML字符串我已經變成使用在物化XML

$content = mb_convert_encoding($content, "ASCII"); 
$obj = new SimpleXMLElement($content); 

OBJ的結構是完全匹配的XML對象。然而,嘗試獲取沒有父「set」節點的數組的集合正在引起我的問​​題。 我做

foreach($obj->group as $currentGroup) 
{ 

從裏面這裏,如果我做$ currentGroup->設置然後我看到一個設置節點與下它的編號,0和1,以及其下的子測試的結構。 我的問題是我嘗試做$ currentGroup->具 - >設置(嘗試獲得的套陣列時不父然後我得到自動的第一套,沒有其他的人的。 enter image description here

<global> 
    <group name="bce"> 
     <sets> 
      <set name="a"> 
       <subsets> 
        <subset name="bla"/> 
        <subset name="bla2"/> 
        <subset name="bla3"/> 
       </subsets> 
      </set> 
      <set name="b" /> 
       <subsets> 
        <subset name="bla"/> 
        <subset name="bla2"/> 
        <subset name="bla3"/> 
       </subsets> 
      </set> 
      <set name="c" /> 
       <subsets> 
        <subset name="bla"/> 
        <subset name="bla2"/> 
        <subset name="bla3"/> 
       </subsets> 
      </set> 
      <set name="d" /> 
       <subsets> 
        <subset name="bla"/> 
        <subset name="bla2"/> 
        <subset name="bla3"/> 
       </subsets> 
      </set> 
     </subgroupones> 
    </group> 
    <group name="ert"> 
     <sets> 
      <set name="aa"> 
       <subsets> 
        <subset name="bla"/> 
        <subset name="bla2"/> 
        <subset name="bla3"/> 
       </subsets> 
      </set> 
      <set name="bb" /> 
       <subsets> 
        <subset name="bla"/> 
        <subset name="bla2"/> 
        <subset name="bla3"/> 
       </subsets> 
      </set> 
     </subgroupones> 
    </group> 
</global> 
+1

好像你錯過了一個封閉的''標籤。不知道這是個問題。只注意到它。另外,閉合標籤''沒有開放標籤。 – Gohn67 2012-03-28 23:19:23

回答

1

所以,你想要的的陣列設置節點?應該是$currentGroup->sets->children()除非我失去了一些東西。

+0

完美的感謝很多,這正是我期待的對於。是否有從同一行自動選擇第一個節點的方法? – user391986 2012-03-29 17:59:20

+0

不幸的是,PHP不允許你從返回它們的函數中解引用數組,你必須先將這個值存儲在一個變量中。請參閱[this old thread](http://marc.info/?l=php-general&m=120422624624319&w=2)瞭解更多信息。但是,如果你想要的只是第一個元素而不是集合,你可以簡單地使用'$ currentGroup-> sets-> set [0]'。 – quickshiftin 2012-03-29 18:27:40