php - 如何在数组中查找某些 XML 项?

标签 php xml arrays parsing

如何从 XML 文档返回所有标记为 guid 的项目?例如:

[guid] => http://www.motorauthority.com/blog/1060293_aston-martin-v12-zagato-2011-concorso-deleganza-villa-deste

这是我的代码:

$source = 'http://feeds.feedburner.com/motorauthority2?format=xml';
$dom = new DOMDocument();
@$dom->loadHTMLFile($source);
$xml = simplexml_import_dom($dom);
$blog = $xml->xpath("//channel");
print_r($blog);

这是print_r的输出:

Array
(
    [0] => SimpleXMLElement Object
        (
            [language] => en
            [title] => High Gear Media Network Feed
            [description] => Latest news, reviews, and more from around the High Gear Media network of sites
            [image] => SimpleXMLElement Object
                (
                    [link] => SimpleXMLElement Object
                        (
                        )

                    [url] => http://www.motorauthority.com/images/logo-footer.jpg
                    [title] => MotorAuthority
                )

            [lastbuilddate] => Fri, 20 May 2011 04:55:17 -0400
            [generator] => High Gear Media
            [link] => Array
                (
                    [0] => SimpleXMLElement Object
                        (
                        )

                    [1] => SimpleXMLElement Object
                        (
                            [@attributes] => Array
                                (
                                    [atom10] => http://www.w3.org/2005/Atom
                                    [rel] => self
                                    [type] => application/rss+xml
                                    [href] => http://feeds.feedburner.com/MotorAuthority2
                                )

                        )

                    [2] => SimpleXMLElement Object
                        (
                            [@attributes] => Array
                                (
                                    [atom10] => http://www.w3.org/2005/Atom
                                    [rel] => hub
                                    [href] => http://pubsubhubbub.appspot.com/
                                )

                        )

                )

            [info] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [uri] => motorauthority2
                        )

                )

            [explicit] => no
            [subtitle] => Latest news, reviews, and more from around the High Gear Media network of sites
            [meta] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [xhtml] => http://www.w3.org/1999/xhtml
                            [name] => robots
                            [content] => noindex
                        )

                )

            [feedflare] => Array
                (
                    [0] => Subscribe with My Yahoo!
                    [1] => Subscribe with NewsGator
                    [2] => Subscribe with My AOL
                    [3] => Subscribe with Bloglines
                    [4] => Subscribe with Netvibes
                    [5] => Subscribe with Google
                    [6] => Subscribe with Pageflakes
                    [7] => Subscribe with Plusmo
                    [8] => Subscribe with The Free Dictionary
                    [9] => Subscribe with Bitty Browser
                    [10] => Subscribe with NewsAlloy
                    [11] => Subscribe with Live.com
                    [12] => Subscribe with Excite MIX
                    [13] => Subscribe with Attensa for Outlook
                    [14] => Subscribe with Webwag
                    [15] => Subscribe with Podcast Ready
                    [16] => Subscribe with Flurry
                    [17] => Subscribe with Wikio
                    [18] => Subscribe with Daily Rotation
                )

            [item] => Array
                (
                    [0] => SimpleXMLElement Object
                        (
                            [title] => Aston Martin V12 Zagato: 2011 Concorso d'Eleganza Villa d'Este
                            [description] => The weekend is finally upon us and that means the 2011 Concorso d’Eleganza Villa d’Este is kicking off, along with all that comes with it. Yesterday we saw a sneak peek at the new Ferrari Superamerica 45, built under the automaker’s Special Projects division and destined for a home in New York. Today we have another coachbuilt...]]>
                            [pubdate] => Fri, 20 May 2011 04:55:17 -0400
                            [link] => SimpleXMLElement Object
                                (
                                )

                            [guid] => http://www.motorauthority.com/blog/1060293_aston-martin-v12-zagato-2011-concorso-deleganza-villa-deste

最佳答案

您需要的 XPath 表达式是

/rss/channel/item/guid

请注意,simplexml_load_file() 可以处理 URI。无需查看 DOMDocument

关于php - 如何在数组中查找某些 XML 项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6071381/

相关文章:

PHP 单循环遍历 2 个 MySQL 表

xml - 将非结构化文档解析为 XML

xml - XPath-选择一个名称相同的所有子节点本身都具有特定子节点的节点

c++ - 覆盖数组元素时如何调用构造函数

php - 如何跟踪 PHP 中每行/每行/方法 block 的执行时间?

javascript - Google map 图 block 未在 Bootstrap-Modal 中加载

php - joomla BASE HREF 使用 HTTP 而不是 HTTPS

java - 输入长文本后,具有自定义 View 的 AlertDialog 消失在软键盘后面

java - 实现更有效的矩阵 - 使用数组数组(二维)或一维数组?

C++ 程序不从文件中读取字符