2

わかりました、これはばかげた質問かもしれませんが、XML ドキュメントから 1 つの要素を取得するにはどうすればよいでしょうか?

私はこのXMLを持っています

$element = $response['linkedin'];

SimpleXMLElement Object
( 
    [id] => 575677478478
    [first-name] => John
    [last-name] => Doe
    [email-address] => john@doe.com
    [picture-url] => http://m3.licdn.com/mpr/mprx/123
    [headline] => Headline goes here
    [industry] => Internet
    [num-connections] => 71

first-nameとして割り当てたいだけです$firstName

xPath を使用してループすることはできますが、それはやり過ぎのように思えます。

元:

$fName = $element->xpath('first-name');
foreach ($fName as $name) 
{
    $firstName = $name;
}
4

3 に答える 3

3

SimpleXML の (1 つまたは複数の) 要素ノードのリストに 1 つの要素としてアクセスすると、最初の要素が返されます。これはデフォルトです (また、SimpleXML Basic Usageにも概要が示されています):

$first = $element->{'first-name'};

複数の要素がある場合は、角かっこ (配列アクセス) または中かっこ (プロパティ アクセス) のいずれかでゼロから始まるインデックスを使用して、どの要素を意味するかを指定できます。

$first = $element->{'first-name'}[0];
$first = $element->{'first-name'}{0};

これにより、いわゆる SimpleXML 自己参照を作成して要素自体にアクセスすることもできます。たとえば、要素を削除できます。

unset($first[0]);  # removes the element node from the document.

unset($first);     # unsets the variable $first

Xpath はやり過ぎだと思うかもしれません。しかし、SimpleXML ではそれほど高価ではありません。要素にアクセスする唯一の方法がXpathでもある場合があります。したがって、xpath ごとに最初の要素にも簡単にアクセスできることを知っておくと便利です。たとえば、SimpleXML の親要素:

list($parent) $element->xpath('..'); # PHP < 5.4

$parent = $element->xpath('..')[0];  # PHP >= 5.4

おわかりのように、SimpleXML をさらに活用するには、物事がどのように機能するかを実際に理解する価値があります。SimpleXML の基本的な使い方のページで既にすべてを知っている場合は、

于 2013-04-19T08:07:32.263 に答える