php - 如何解析 xml 站点地图中的图像标签?

标签 php xml image parsing

<url>
<loc>
<![CDATA[ https://www.news18.com/photogallery/photogallery/in-photos-five-most-expensive-face-masks-for-protection-from-covid-19-in-the-world-3519821.html ]]>
</loc>
<image:image>
<image:loc>
<![CDATA[ https://images.news18.com/ibnlive/uploads/2021/03/1615377235_mask-1.jpg ]]>
</image:loc>
<image:caption>
<![CDATA[ ]]>
</image:caption>
</image:image>
<image:image>
<image:loc>
<![CDATA[ https://images.news18.com/ibnlive/uploads/2021/03/1615377250_mask-2.jpg ]]>
</image:loc>
<image:caption>
<![CDATA[ ]]>
</image:caption>
</image:image>
</url>

如果我写 $xml->url->image:image | 如何在 php 中选择 image:image 元素语法错误

最佳答案

熟悉 XML Namespaces 是个好主意。首先。

我假设在更高的层次上你有一些东西可以解释 image: 代表什么。如果不这样做,那就是一个不同的问题,并且可以说您没有 XML,只是看起来很像它的东西。这是完全相同的 XML,但包装在我认为是 Image Sitemap as defined by Google 的内容中。 .

$xml = <<<'TAG'
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
<url>
<loc>
<![CDATA[ https://www.news18.com/photogallery/photogallery/in-photos-five-most-expensive-face-masks-for-protection-from-covid-19-in-the-world-3519821.html ]]>
</loc>
<image:image>
<image:loc>
<![CDATA[ https://images.news18.com/ibnlive/uploads/2021/03/1615377235_mask-1.jpg ]]>
</image:loc>
<image:caption>
<![CDATA[ ]]>
</image:caption>
</image:image>
<image:image>
<image:loc>
<![CDATA[ https://images.news18.com/ibnlive/uploads/2021/03/1615377250_mask-2.jpg ]]>
</image:loc>
<image:caption>
<![CDATA[ ]]>
</image:caption>
</image:image>
</url>
</urlset>
TAG;

要通过命名空间访问事物,您可以在具有适当命名空间扩展的节点上调用children():

$doc = simplexml_load_string($xml);
echo $doc->url[0]->children('http://www.google.com/schemas/sitemap-image/1.1')->image->loc;

打印出:


 https://images.news18.com/ibnlive/uploads/2021/03/1615377235_mask-1.jpg

关于php - 如何解析 xml 站点地图中的图像标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66568872/

相关文章:

javascript - PHP Chart Js加载Mysql及接口(interface)

image - Github 自述文件中的 float 图像

java - 如何将 html 片段注入(inject)到包含有效 html 的字符串中?

android - 在 Image View Android 中获取模糊图像

c# - 如何在 WP8 map 上创建自动缩放图像

php - 关系数据库查询警告

php - Zend 框架 : set Module as Subdomain

php - PDF裁剪PHP库

c# - Python XML Parse(使用模式生成数据集)

java - 在java中解析xml时出错