我在变量中包含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 :(得分:2)
使用XML parser至load the string to XML,然后使用get its children或使用XPATH,如:
/status/Options/data_2//id
答案 1 :(得分: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解析器。