2015-11-05 32 views
1

這是從變量$baseTypeDerivedDataTypeRefModel中打印出來的,就我獲得所需的值而言。我需要從SimpleXMLObject中提取值int16,int64等。我已經使用了$baseTypeDerivedDataTypeRefModel[0]$baseTypeDerivedDataTypeRefModel->getName()$baseTypeDerivedDataTypeRefModel->getName()以及其他一些東西,無法讓它工作,我知道它可能是簡單的東西,但它使我發瘋!無法訪問SimpleXMLObject中的標籤名稱

SimpleXMLElement Object ([int16] => SimpleXMLElement Object ([range] => SimpleXMLElement Object ([min] => 1 [max] => 10) [ranges] => SimpleXMLElement Object ([subrange] => SimpleXMLElement Object ([min] => 1 [max] => 10)) [multiplicationFactor] => 2 [resolution] => 2)) 

SimpleXMLElement Object ([int64] => SimpleXMLElement Object ([range] => SimpleXMLElement Object ([min] => 1 [max] => 10) [ranges] => SimpleXMLElement Object ([subrange] => SimpleXMLElement Object ([min] => 1 [max] => 10)) [multiplicationFactor] => 2 [resolution] => 2)) 

SimpleXMLElement Object ([int16] => SimpleXMLElement Object ([range] => SimpleXMLElement Object ([min] => 1 [max] => 10) [ranges] => SimpleXMLElement Object ([subrange] => SimpleXMLElement Object ([min] => 1 [max] => 10)) [multiplicationFactor] => 2 [resolution] => 2)) 

SimpleXMLElement Object ([uint8] => SimpleXMLElement Object ()) 

SimpleXMLElement Object ([int16] => SimpleXMLElement Object ([range] => SimpleXMLElement Object ([min] => 1 [max] => 10) [ranges] => SimpleXMLElement Object ([subrange] => SimpleXMLElement Object ([min] => 1 [max] => 10)) [multiplicationFactor] => 2 [resolution] => 2)) 

SimpleXMLElement Object ([string] => SimpleXMLElement Object ()) 


<derivedDataType name="DerivedIntDatatypeU16"> 
    <description>Random Desc </description> 
    <baseType> 
    <int16> 
     <range> 
     <min>1</min> 
     <max>10</max> 
     </range> 
     <ranges> 
     <subrange> 
      <min>1</min> 
      <max>10</max> 
     </subrange> 
     </ranges> 
     <multiplicationFactor>2</multiplicationFactor> 
     <resolution>2</resolution> 
    </int16> 
    </baseType> 
</derivedDataType> 
+0

你可以發佈你使用的XML嗎? –

+0

新增下面的示例xml需要通過訪問標籤名稱來獲取字符串「int16」,並且只能獲得基本類型 – olliejjc16

+0

在 –

回答

1

因爲你永遠不知道有多少項目「BASETYPE」有(這是XML,畢竟),你可以這樣做來獲得的第一個項目的名稱:

$xmlstring = '<derivedDataType name="DerivedIntDatatypeU16"> ... </derivedDataType>'; 
$xml = new SimpleXMLElement($xmlstring); 

// Cast the SimpleXMLObject as an array 
$list = (array) $data->baseType; 

// Reset the array pointer (so we know we're at the start of the array) 
reset($list); 

// Get the key name of the first element 
$name = key($list); 

這將提取的baseType列表,將其轉換爲數組,然後獲取第一個數組元素的鍵。

可能有(或最有可能的)更好的方法來做到這一點,但它的工作原理。

+0

以下添加了一個答案這很好用,謝謝! – olliejjc16