2013-03-05 17 views
0

我在變量中有XML數據。PHP在包含XML數據的變量中搜索文本/數據

我現在需要在這個變量中搜索一個特定的文本。

任何人都可以指向正確的方向嗎?我一直在谷歌上搜索這個,但不會有好結果:O/

的XML數據是這樣的:

<status> 
<connection_status>successful</connection_status> 
<operation_status>successful</operation_status> 
<Options> 
<data_2> 
<data_7422731> 
<id>7431</id> 
<assetId>2</assetId> 
<startDate>2013-03-05 11:00:00</startDate> 
<endDate>2013-03-05 12:00:00</endDate> 
</data_7422731> 
</data_2> 
</Options> 
</status> 

我需要尋找一個特定的ID。

例如ID爲 「7431」

+0

您是否在尋找特定元素?或者更具體的文字內容? – Daniel 2013-03-05 11:58:54

+3

發佈您的代碼。顯示你的努力。 – Rikesh 2013-03-05 11:59:10

+0

你可以顯示代碼(XML文件的結構,你在找什麼以及你嘗試過什麼)? – Tjoene 2013-03-05 11:59:43

回答

1

嗯,這是不太XML相關的,但像其他人說,除非你提供了更多的細節和代碼,但我們沒有太多的幫助。

這是案例的快速髒修復你不想被人打擾建立一個XML解析器:

編輯:我更新的代碼來解決一些微小的錯誤,我把它變成了一項功能,你可以把它叫做任何標籤。

function findID($mystring,$tag) 
{ 
    $begintag="<$tag>"; 
    $endtag = "</$tag>"; 
    $beginpos = strpos($mystring, $begintag); 
    $endpos = strpos($mystring,$endtag); 

    $length = $endpos - ($beginpos + strlen($beginpos) +1); 

    $extractedvariable = substr($mystring, $beginpos + strlen($beginpos) +1, $length); 

    return $extractedvariable; 
} 

用例:

$data='<status> 
      <connection_status>successful</connection_status> 
      <operation_status>successful</operation_status> 
      <Options> 
      <data_2> 
      <data_7422731> 
      <id>7431</id> 
      <assetId>2</assetId> 
      <startDate>2013-03-05 11:00:00</startDate> 
      <endDate>2013-03-05 12:00:00</endDate> 
      </data_7422731> 
      </data_2> 
      </Options> 
      </status>'; 

echo findID($data,'id');  

我還是建議使用XML解析器,如果你要使用的大部分標籤中的變量,或者如果你有多層XML。

+0

它返回空白...我想要做的是告訴它:「在$ data變量中查找文本'7431' – Satch3000 2013-03-05 13:13:16