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 に答える