0

ここでたくさんの投稿を読みましたが、simplexml 関数を使用して OPML ファイルから読み取っているデータを並べ替える方法がまだわかりません。これは一種の重複であることは認識していますが、抽象化された例を使用してこれを正しく理解するには明らかに遅すぎます。

次のような内容のかなり標準的な OPML ファイルがあります。

<?xml version="1.0" encoding="UTF-8"?>
<opml version="1.0">
<!-- OPML generated by Fever -->
<head><title>Fever // Coffee</title></head>
<body>    
    <outline type="rss" text="I Love Coffee" title="I Love Coffee" xmlUrl="http://en.ilovecoffee.jp/posts/rss" htmlUrl="http://www.ilovecoffee.jp"/>
    <outline type="rss" text="Dear Coffee I Love You" title="Dear Coffee I Love You" xmlUrl="http://feeds.feedburner.com/DearCoffeeILoveYou" htmlUrl="http://www.dearcoffeeiloveyou.com"/>
</body>
</opml>

最も単純なコードを使用して Markdown リストを生成しています。

foreach ($opml->body->outline as $feed) {
    echo '* [' . $feed['title'] . '](' . $feed[htmlUrl] . ')' . "\n";
}

リストを「タイトル」属性で並べ替えたいだけですが、その方法がわかりません。

xmlオブジェクトを配列に変換する必要があることは私の理解です。これを行うことができます:

$json = json_encode($opml);
$xml_array = json_decode($json,TRUE);

しかし、その配列を「タイトル」でソートするのがうまくいかないようです

4

1 に答える 1