0

我在变量中有 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"

4

2 回答 2

2

使用XML 解析器字符串加载到 XML,然后获取其子级或使用XPATH,例如:

/status/Options/data_2//id
于 2013-03-05T12:00:18.237 回答
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 解析器。

于 2013-03-05T12:10:21.140 回答