2009-12-16 63 views
0

我有一些XML,可以說<names number="12"></names>PHP簡單的XML元素的問題/錯誤

當我運行以下命令:

$simpleXMLElement = new SimpleXMLElement($xml); 
pr($simpleXMLElement); 

我得到如下:

SimpleXMLElement Object 
(
    [@attributes] => Array 
     (
      [number] => 12 
     ) 

    [0] => 

) 

它拋出那0條目。這很奇怪。我不知道它應該代表什麼。如果我這樣做,而不是:

<names number="12"><name first="oliver" /></names> 

我得到以下輸出:

SimpleXMLElement Object 
(
    [@attributes] => Array 
     (
      [number] => 12 
     ) 

    [name] => SimpleXMLElement Object 
     (
      [@attributes] => Array 
       (
        [first] => oliver 
       ) 

     ) 

) 

這是預期(至少對我來說)。任何想法/方向?

回答

0

第一:如果您沒有正確格式化您的文章,XML將不會顯示。縮進至少4個空格的任何代碼。

其次,不要指望print_r()var_dump()給你一個SimpleXMLElement的精確表示,因爲SimpleXML的使用大量的魔法,讓孩子們和屬性不一定會在輸出顯示。

0

它似乎只是SimpleXML做一個快速而骯髒的解析元素的工作:因爲你有<names></names>,它在元素內添加一個數組,作爲期待元素內的元素,當它沒有找到任何names標籤中的元素,它會留下一個空數組,密鑰0,因爲它不知道給它起什麼名字。 (<names />)不應生成空白內容。 (聽起來很奇怪。)