1

simplexml xpathに関するアドバイスが必要です。次のような Web サイト全体のマスター XML ファイルがあります。

<content>
<item id="001">
    <title>Video 1</title>
    <video>
        <file>video001.mp4</file>
        <dur>01:20</dur>
    </video>
</item>
<item id="2">
    <title>Video 2</title>
    <video>
        <file>video002.mp4</file>
        **<dur>03:53</dur>**
    </video>
</item>
</content>

ここで、文字列「03:53」になるID「2」のアイテムのビデオの長さをエコーし​​たいと思います。

simplexml の単純な使用法のようですが、そこにある大量のチュートリアルは、ループと配列番号による選択のみをカバーしています。ID で親要素にアクセスし、特定の子要素の文字列を取得したいと考えています。

前もって感謝します!ルナ

4

1 に答える 1

1

その目的で XPath を使用できます: http://php.net/manual/en/simplexmlelement.xpath.php

コードは次のようになります (多かれ少なかれ):

$xml = simplexml_load_file('path/to/xml/file.xml');
$result = $xml->xpath('/content/item[@id=2]/video/dur/text()');
$result = $result[0];
echo $result;

これがphpFiddle http://phpfiddle.org/main/code/9hc-yqiです

おそらく、文字列に xpath の結果をキャストする必要もありますが、よくわかりません。http://www.xpathtester.com/内でこのコードの xpath 部分をテストしたところ、問題なく動作しました。

于 2013-08-29T01:58:21.040 に答える