重複の可能性: SimpleXML での
属性値の選択
SimpleXML: 特定の属性値を持つ要素の選択
XML ドキュメントを解析して、特定の ID を探しています。ID 値は、属性「pii」の下の ArticleId 要素で提供されます。生の XML:
<ArticleIdList>
<ArticleId IdType="pubmed">12676398</ArticleId>
<ArticleId IdType="pii">S0020729202004460</ArticleId>
</ArticleIdList>
参照用のドキュメント全体は次のとおりです。
simplexml_load_file() を使用して、ドキュメントを反復処理して値を取得しています。ArticleId 要素にアクセスする方法は次のとおりです。
$xml_PubmedArticle->PubmedData->ArticleIdList->ArticleId;
問題は、ArticleId の属性の順序がランダムであることです。一部の ArticleId 要素は、2 番目の要素に「pii」値を含み (以下を参照)、他のレコードは 2 番目の要素に異なる属性 (「doi」) を持ちます。
SimpleXMLElement Object
(
[ArticleId] => Array
(
[0] => 12676398
[1] => S0020729202004460
)
)
変化:
SimpleXMLElement Object
(
[ArticleId] => Array
(
[0] => 1234
[1] => ABC123
[2] => S002012345678
)
)
生の XML で属性「pii」によって識別される「S0002...」ID を探しています。
特定の属性に基づいて値を確認/取得するにはどうすればよいですか?