php - 用itunes解析xml标签:来自url的东西
问题描述
我正在努力使用 simplexml_load_file PHP 从 url 解析 xml。我在 stackoverflow 上找到了很多示例,但没有人给我预期的结果。
这是 xml 网址的一部分。 我想得到的是itunes:image 或 google:image tag。
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="rss.xslt" ?>
<rss
xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:spotify="http://www.spotify.com/ns/rss"
xmlns:psc="http://podlove.org/simple-chapters/"
xmlns:media="https://search.yahoo.com/mrss/"
version="2.0">
<channel>
<title>"Anecdotes"</title>
<link>https://podcast.ausha.co/anecdotes</link>
<atom:link rel="self" type="application/rss+xml" href="https://feed.ausha.co/bVn6ghlkLaaz"/>
<description>"Anecdotes" met en lumière des histoires insolites et incroyables, de personnalités connues, ou non, et dont on va pouvoir tirer ensemble, 3 leçons sur la vie, le travail ou l'entrepreneuriat.
Bonjour, je suis Baptiste Piocelle, entrepreneur, co-fondateur de Canoa et podcasteur. Dans mon émission, vous découvrirez des histoires extraordinaires qui vous feront progresser dans vos objectifs de vie. Identifiez-vous facilement aux invités avec un panel très large de personnalités, de métiers et de caractères. Une émission sans langue de bois ni montage, la vérité à l'état pur.
Écoutez des personnalités connues raconter des Anecdotes inédites sur leur vie, puis écoutez votre voisin parler de l'histoire incroyable qui lui est arrivé, le choix est votre.
N'hésitez pas à aimer, noter, partager et commenter le podcast. Si vous le partagez à 3 personnes autour de vous, ensemble, nous atteindrons des sommets.
Merci et bonne écoute !
Amicalement vôtre,
Baptiste Piocelle</description>
<language>fr</language>
<copyright>Baptiste Piocelle</copyright>
<lastBuildDate>Sun, 25 Apr 2021 08:01:04 +0000</lastBuildDate>
<pubDate>Sun, 25 Apr 2021 08:01:04 +0000</pubDate>
<webMaster>feeds@ausha.co (Ausha)</webMaster>
<generator>Ausha (https://www.ausha.co)</generator>
<spotify:countryOfOrigin>fr</spotify:countryOfOrigin>
<itunes:author>Baptiste Piocelle</itunes:author>
<itunes:owner>
<itunes:name>Baptiste Piocelle</itunes:name>
<itunes:email>baptiste.piocelle@gmail.com</itunes:email>
</itunes:owner>
<itunes:summary>"Anecdotes" met en lumière des histoires insolites et incroyables, de personnalités connues, ou non, et dont on va pouvoir tirer ensemble, 3 leçons sur la vie, le travail ou l'entrepreneuriat.
Bonjour, je suis Baptiste Piocelle, entrepreneur, co-fondateur de Canoa et podcasteur. Dans mon émission, vous découvrirez des histoires extraordinaires qui vous feront progresser dans vos objectifs de vie. Identifiez-vous facilement aux invités avec un panel très large de personnalités, de métiers et de caractères. Une émission sans langue de bois ni montage, la vérité à l'état pur.
Écoutez des personnalités connues raconter des Anecdotes inédites sur leur vie, puis écoutez votre voisin parler de l'histoire incroyable qui lui est arrivé, le choix est votre.
N'hésitez pas à aimer, noter, partager et commenter le podcast. Si vous le partagez à 3 personnes autour de vous, ensemble, nous atteindrons des sommets.
Merci et bonne écoute !
Amicalement vôtre,
Baptiste Piocelle</itunes:summary>
<itunes:explicit>no</itunes:explicit>
<itunes:block>no</itunes:block>
<itunes:type>episodic</itunes:type>
<itunes:subtitle>Anecdotes insolites et incroyables de personnes connues, ou non.</itunes:subtitle>
<googleplay:author>Baptiste Piocelle</googleplay:author>
<googleplay:email>baptiste.piocelle@gmail.com</googleplay:email>
<googleplay:description>"Anecdotes" met en lumière des histoires insolites et incroyables, de personnalités connues, ou non, et dont on va pouvoir tirer ensemble, 3 leçons sur la vie, le travail ou l'entrepreneuriat.
Bonjour, je suis Baptiste Piocelle, entrepreneur, co-fondateur de Canoa et podcasteur. Dans mon émission, vous découvrirez des histoires extraordinaires qui vous feront progresser dans vos objectifs de vie. Identifiez-vous facilement aux invités avec un panel très large de personnalités, de métiers et de caractères. Une émission sans langue de bois ni montage, la vérité à l'état pur.
Écoutez des personnalités connues raconter des Anecdotes inédites sur leur vie, puis écoutez votre voisin parler de l'histoire incroyable qui lui est arrivé, le choix est votre.
N'hésitez pas à aimer, noter, partager et commenter le podcast. Si vous le partagez à 3 personnes autour de vous, ensemble, nous atteindrons des sommets.
Merci et bonne écoute !
Amicalement vôtre,
Baptiste Piocelle</googleplay:description>
<googleplay:explicit>no</googleplay:explicit>
<category>Business</category>
<itunes:category text="Business">
<itunes:category text="Entrepreneurship"/>
</itunes:category>
<googleplay:category text="Business"/>
<image>
<url>https://image.ausha.co/XhB165o4xydsexMnRaeWnChVEQyzCCCHesge5RBF_1400x1400.jpeg?t=1606905283</url>
<title>"Anecdotes"</title>
<link>https://podcast.ausha.co/anecdotes</link>
</image>
<itunes:image href="https://image.ausha.co/XhB165o4xydsexMnRaeWnChVEQyzCCCHesge5RBF_1400x1400.jpeg?t=1606905283"/>
<googleplay:image href="https://image.ausha.co/XhB165o4xydsexMnRaeWnChVEQyzCCCHesge5RBF_1400x1400.jpeg?t=1606905283"/>
<item>
<title>#18 "J'ai tout plaqué du jour au lendemain pour partir seule, j'ai torpillé ma vie." Camille Dubois-Leipp, fondatrice de Outtrip.</title>
<guid isPermaLink="false">049ecaaadeaca289eb4975b02eee9edb1b8c4792</guid>
<description><![CDATA[<p>Cela vous est-il déjà arrivé d'imaginer ce qu'il se passerait si vous plaquiez tout du jour au lendemain ? Avec pour objectif de partir vivre seul dans une nouvelle ville, ou bien même pour partir en pèlerinage sur le chemin de Saint-Jacques de Compostelle ?</p>
<p>Et bien si vous voulez une réponse, écoutez cet épisode. Camille Dubois-Leipp a torpillé sa vie du jour au lendemain, pour partir seule, pendant 40 jours, en pèlerinage.</p>
<p>Elle était la cadre dynamique parisienne parfaite, 30 ans, un gros poste, un bon salaire, des amis et du boulot par-dessus la tête.</p>
<p>Puis, tout s'effondre, le déclique, elle part, d'abord sur le chemin de Compostelle, puis elle plaque tout pour s'installer à Annecy, sans argent et sans connaissances.</p>
<p>Aujourd’hui, elle se lance dans l'entrepreneuriat, avec un projet sportif Outtrip.</p>
<p>Un épisode dans lequel on parle de sport, de travail, de spiritualité, de notre rapport à la vie. Bref, un épisode passionnant, que je vous conseille vivement.</p>
<p>N'oubliez pas de vous abonner, c'est super important, et partagez de force ce podcast à vos proches !</p>
<p>Venez me suivre sur instagram @thebatoux et @anecdotes_podcast, ainsi que sur LinkedIn.</p>
<p>À la semaine prochaine !</p>]]></description>
<content:encoded><![CDATA[<p>Cela vous est-il déjà arrivé d'imaginer ce qu'il se passerait si vous plaquiez tout du jour au lendemain ? Avec pour objectif de partir vivre seul dans une nouvelle ville, ou bien même pour partir en pèlerinage sur le chemin de Saint-Jacques de Compostelle ?</p>
<p>Et bien si vous voulez une réponse, écoutez cet épisode. Camille Dubois-Leipp a torpillé sa vie du jour au lendemain, pour partir seule, pendant 40 jours, en pèlerinage.</p>
<p>Elle était la cadre dynamique parisienne parfaite, 30 ans, un gros poste, un bon salaire, des amis et du boulot par-dessus la tête.</p>
<p>Puis, tout s'effondre, le déclique, elle part, d'abord sur le chemin de Compostelle, puis elle plaque tout pour s'installer à Annecy, sans argent et sans connaissances.</p>
<p>Aujourd’hui, elle se lance dans l'entrepreneuriat, avec un projet sportif Outtrip.</p>
<p>Un épisode dans lequel on parle de sport, de travail, de spiritualité, de notre rapport à la vie. Bref, un épisode passionnant, que je vous conseille vivement.</p>
<p>N'oubliez pas de vous abonner, c'est super important, et partagez de force ce podcast à vos proches !</p>
<p>Venez me suivre sur instagram @thebatoux et @anecdotes_podcast, ainsi que sur LinkedIn.</p>
<p>À la semaine prochaine !</p>]]></content:encoded>
<pubDate>Sun, 25 Apr 2021 08:00:00 +0000</pubDate>
<enclosure url="https://audio.ausha.co/yEXw1UR2qKmV.mp3?t=1619332909" length="81096723" type="audio/mpeg"/>
<link>https://podcast.ausha.co/anecdotes/18-j-ai-tout-plaque-du-jour-au-lendemain-pour-partir-seule-j-ai-torpille-ma-vie-camille-dubois-leipp-fondatrice-de</link>
<itunes:author>Baptiste Piocelle</itunes:author>
<itunes:explicit>no</itunes:explicit>
<itunes:keywords>podcast,France,paris,anecdotes,vie,entrepreneuriat,entrepreneur,coach,Rouen,start-up,français,célébrités</itunes:keywords>
<itunes:duration>1:24:28</itunes:duration>
<itunes:episodeType>full</itunes:episodeType>
<itunes:season>1</itunes:season>
<itunes:episode>16</itunes:episode>
<itunes:block>no</itunes:block>
<itunes:subtitle>Cela vous est-il déjà arrivé d'imaginer ce qu'il se passerait si vous plaquiez tout du jour au lendemain ? Avec pour objectif de partir vivre seul dans une nouvelle ville, ou bien même pour partir en pèlerinage sur le chemin de Saint-Jacques de Compost...</itunes:subtitle>
<googleplay:author>Baptiste Piocelle</googleplay:author>
<googleplay:explicit>no</googleplay:explicit>
<googleplay:block>no</googleplay:block>
<itunes:image href="https://image.ausha.co/RWtgTlFC7BbehBR0KAv5z7HnXXb32yCAFFCw7IbE_1400x1400.jpeg?t=1619332719"/>
<googleplay:image href="https://image.ausha.co/RWtgTlFC7BbehBR0KAv5z7HnXXb32yCAFFCw7IbE_1400x1400.jpeg?t=1619332719"/>
</item>
<item>
这里是我用来解析的 php
$url = "https://feed.ausha.co/bVn6ghlkLaaz";
$rss = simplexml_load_file($url);
echo '<pre>';
print_r($rss);
echo '</pre>';
这是 print_r 给我的
SimpleXMLElement Object
(
[@attributes] => Array
(
[version] => 2.0
)
[channel] => SimpleXMLElement Object
(
[title] => "Anecdotes"
[link] => https://podcast.ausha.co/anecdotes
[description] => "Anecdotes" met en lumière des histoires insolites et incroyables, de personnalités connues, ou non, et dont on va pouvoir tirer ensemble, 3 leçons sur la vie, le travail ou l'entrepreneuriat.
Bonjour, je suis Baptiste Piocelle, entrepreneur, co-fondateur de Canoa et podcasteur. Dans mon émission, vous découvrirez des histoires extraordinaires qui vous feront progresser dans vos objectifs de vie. Identifiez-vous facilement aux invités avec un panel très large de personnalités, de métiers et de caractères. Une émission sans langue de bois ni montage, la vérité à l'état pur.
Écoutez des personnalités connues raconter des Anecdotes inédites sur leur vie, puis écoutez votre voisin parler de l'histoire incroyable qui lui est arrivé, le choix est votre.
N'hésitez pas à aimer, noter, partager et commenter le podcast. Si vous le partagez à 3 personnes autour de vous, ensemble, nous atteindrons des sommets.
Merci et bonne écoute !
Amicalement vôtre,
Baptiste Piocelle
[language] => fr
[copyright] => Baptiste Piocelle
[lastBuildDate] => Sun, 25 Apr 2021 08:01:04 +0000
[pubDate] => Sun, 25 Apr 2021 08:01:04 +0000
[webMaster] => feeds@ausha.co (Ausha)
[generator] => Ausha (https://www.ausha.co)
[category] => Business
[image] => SimpleXMLElement Object
(
[url] => https://image.ausha.co/XhB165o4xydsexMnRaeWnChVEQyzCCCHesge5RBF_1400x1400.jpeg?t=1606905283
[title] => "Anecdotes"
[link] => https://podcast.ausha.co/anecdotes
)
[item] => Array
(
[0] => SimpleXMLElement Object
(
[title] => #18 "J'ai tout plaqué du jour au lendemain pour partir seule, j'ai torpillé ma vie." Camille Dubois-Leipp, fondatrice de Outtrip.
[guid] => 049ecaaadeaca289eb4975b02eee9edb1b8c4792
[description] => SimpleXMLElement Object
(
)
[pubDate] => Sun, 25 Apr 2021 08:00:00 +0000
[enclosure] => SimpleXMLElement Object
(
[@attributes] => Array
(
[url] => https://audio.ausha.co/yEXw1UR2qKmV.mp3?t=1619332909
[length] => 81096723
[type] => audio/mpeg
)
)
[link] => https://podcast.ausha.co/anecdotes/18-j-ai-tout-plaque-du-jour-au-lendemain-pour-partir-seule-j-ai-torpille-ma-vie-camille-dubois-leipp-fondatrice-de
)
[1] => SimpleXMLElement Object
它不解析/显示任何“itunes:something”标签。有没有人知道为什么它不解析以及我可以使用什么解决方案。
我试过这个但得到 php 致命错误
$xml = new SimpleXMLElement($r);
$xml->registerXPathNamespace('i', 'https://feed.ausha.co/bVn6ghlkLaaz');
foreach($xml->xpath('//i:author') as $itunes) {
$itunes->registerXPathNamespace('i', 'https://feed.ausha.co/bVn6ghlkLaaz');
var_export($itunes->xpath('//i:author'));
}
Fatal error: Uncaught Exception: String could not be parsed as XML in C:\xampp\htdocs\anecdotes\wp-content\themes\anecdoteschild\template-home.php:88 Stack trace:
#0 C:\xampp\htdocs\anecdotes\wp-content\themes\anecdoteschild\template-home.php(88): SimpleXMLElement->__construct('')
#1 C:\xampp\htdocs\anecdotes\wp-includes\template-loader.php(106): include('C:\\xampp\\htdocs...')
#2 C:\xampp\htdocs\anecdotes\wp-blog-header.php(19): require_once('C:\\xampp\\htdocs...')
#3 C:\xampp\htdocs\anecdotes\index.php(17): require('C:\\xampp\\htdocs...')
#4 {main} thrown in C:\xampp\htdocs\anecdotes\wp-content\themes\anecdoteschild\template-home.php on line 88
解决方案
仔细阅读错误信息:在第一行,它说“无法将字符串解析为 XML”;然后在第二行的末尾,它显示你已经运行SimpleXMLElement->__construct('')
.
因此该错误来自该行$xml = new SimpleXMLElement($r);
,因为$r
不包含任何内容。
您似乎对两件事感到困惑:
- 您尝试从中获取 XML 的统一资源定位器 (URL),即“https://feed.ausha.co/bVn6ghlkLaaz”
- 统一资源标识符 (URI) 用于标识您在该XML 中感兴趣的不同名称空间,即“http://www.itunes.com/dtds/podcast-1.0.dtd”
回到加载 XML 的代码的第一个版本,它工作正常:
$url = "https://feed.ausha.co/bVn6ghlkLaaz";
$rss = simplexml_load_file($url);
然后,要么使用 XPath 来获取你想要的元素:
$xml->registerXPathNamespace('i', "http://www.itunes.com/dtds/podcast-1.0.dtd");
foreach($xml->xpath('//i:author') as $author) {
echo $author;
}
或者使用->children()
明确地转到您想要的元素,如参考中所述 - 如何在 SimpleXML 中处理名称空间(带有冒号的标签和属性)?
echo $xml->channel->children("http://www.itunes.com/dtds/podcast-1.0.dtd")->author;
推荐阅读
- neuraxle - Neuraxle 中的默认超参数值
- r - 用线或箭头将图例链接到绘图
- javascript - 如何通过 expressjs 访问 req.body?
- javascript - 由于未知的 bcrypt 问题,登录时出错
- node.js - nodejs,级联调用异步函数,直到条件发生
- .net - 如何显示创建项目的 dotnet 新模板版本?
- php - 需要帮忙。准备好的信封已注册但未发送到电子邮件
- sql - 执行具有 case 语句和连接的选择查询时出错
- c# - ASP .NET 将 DateTime 值从视图传递到控制器
- javascript - React:获取输入的状态