Linkedin API を使用しています --> https://developer.linkedin.com/documents/profile-fields#company
すべて正常に動作しています。問題なく API に接続できます。以下は、データを要求したときに API によって返されるデータに従います。
これが私のリクエストです(コード全体は投稿しません。500行以上あります)が、取得したいものの本質です。
$response2 = $OBJ_linkedin->profile('~:(recommendations-received)');
if($response2['success'] === TRUE)
{
$response2['linkedin'] = new SimpleXMLElement($response2['linkedin']);
echo "<pre>" . print_r($response2['linkedin'], TRUE) . "</pre>";
}
else
{
// request failed
echo "Error: <br />RESPONSE:<br /><br /><pre>" . print_r($response2) . "</pre>";
}
上記の応答に従います。
SimpleXMLElement Object
(
[recommendations-received] => SimpleXMLElement Object
(
[@attributes] => Array
(
[total] => 1
)
[recommendation] => SimpleXMLElement Object
(
[id] => 0123456
[recommendation-type] => SimpleXMLElement Object
(
[code] => service-provider
)
[recommendation-text] => Here come the recommendation text from the API.
[recommender] => SimpleXMLElement Object
(
[id] => npAnFGrTys
[first-name] => John
[last-name] => Doe
)
)
)
)
今私の質問:
[recommendation-text] ノードのみを取得して出力する方法は? 私はすでに推奨事項のみを呼び出して$response2 = $OBJ_linkedin->profile('~:(recommendations-received)');
いますが、それはすべてを返します。次に、[recommendation-text]
???のみを取得する方法
simplexmlelement (http://br2.php.net/manual/en/class.simplexmlelement.php) を試してみましたが、成功しませんでした。
助けてくれてありがとう。
[結果]
私にとってうまくいった答えを投稿します。
@Mirceaが提案したように、次のコードを使用しています。
$sxml = new SimpleXMLElement($response2['linkedin']);
$res = $sxml->xpath('recommendations-received/recommendation/recommendation-text');
echo $res[0];
このコードの代わりに:
$response2['linkedin'] = new SimpleXMLElement($response2['linkedin']);
echo "<pre>" . print_r($response2['linkedin'], TRUE) . "</pre>";
ここでの違いは、xpath メソッドを使用して、simpleXML ノードで一致する子を検索していることです。ありがとう@Mircea。