2016-11-01 15 views
-1

私は、プロジェクトのxmlファイルを操作するためにSimpleXMLElementクラスを使用します。SimpleXML for PHPを使用して属性値を取得

私の質問は、いくつかの属性を持つタグの属性値を取得する方法ですか?タグの名前、属性の名前、xmlファイル内の場所を知っていると仮定しても構いません。たとえば、そのような文字列の場合、 'someTag'と 'cp'の値を知っている<someTag cp="c2">という文字列に対しては、 "c2"という文字列を取得したいと考えています。

ありがとうございます。

+0

このマニュアルには基本的な属性へのアクセスが含まれています[紹介例](http://php.net/manual/en/simplexml.examples-basic.php)があります。 – IMSoP

答えて

1

あなたはそれが属性です取得するノード上attributes()機能を使用することができます。

$xml_str = '<xml> 
    <node> 
     <someTag cp="c2">content</someTag> 
    </node> 
</xml>'; 
$res = simplexml_load_string($xml_str); 

$items = $res->xpath("//someTag"); 
var_dump((string) $items[0]->attributes()->cp); 

それを使用するためには、私は((string)キャストを使用して)それを文字列に変換して返された要素は、SimpleXMLElementあります。

+0

はい、うまくいきます!ありがとう) – Miroslav

+0

これは、ほとんどの使用例では不必要に複雑です。単純なバージョンは 'var_dump((string)$ res-> someTag ['cp'])' – IMSoP

+0

です。 '$ res-> node-> someTag ['cp']'となります。あなたはそのアイデアを手に入れました。 – IMSoP

関連する問題