Simplexml:通过id选择元素,回显某个子元素

时间:2013-08-29 01:13:08

标签: php xpath simplexml

我需要一些关于simplexml xpath的建议。我的整个网站都有一个主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>

现在我想回复一下id为“2”的项目视频的持续时间,这将是字符串“03:53”。

似乎是simplexml的简单使用,但是大量的教程只包括循环和按数组编号选择。我想通过它的id访问父元素,抓取它的某个子元素的字符串。

提前致谢! 鲁纳

1 个答案:

答案 0 :(得分: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部分,它运行得很好。

相关问题