「ロック」という単語を含む属性を持つすべてのノードを選択したいのですが、PHPのSimpleXMLライブラリを使用してこれを実現する方法がわかりません。属性値にアスタリスク(ワイルドカード)文字を追加しようとしましたが、機能しませんでした。
これがXMLファイルのスニペットです。
<?xml version="1.0" encoding="Shift-JIS"?>
<CDs>
<Cat Type="Rock">
<CD>
<Name>Elvis Prestley</Name>
<Album>Elvis At Sun</Album>
</CD>
<CD>
<Name>Elvis Prestley</Name>
<Album>Best Of...</Album>
</CD>
</Cat>
<Cat Type="RocknRoll">
<CD>
<Name>The Beatles</Name>
<Album>Best of...</Album>
</CD>
</Cat>
<Cat Type="JazzBlues">
<CD>
<Name>B.B. King</Name>
<Album>Singin' The Blues</Album>
</CD>
<CD>
<Name>B.B. King</Name>
<Album>The Blues</Album>
</CD>
</Cat>
</CDs>
これが私のPHPコードです:
<?php
$xml = new XMLReader();
$xml->open("MusicCatalog.xml") or die ("can't open file");
foreach($xml->xpath("Cat[@Type='Rock*']/@Type") as $c) {
print($c) . PHP_EOL;
}
?>
どうもありがとうございます。