2013-03-05 42 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