【问题标题】:How to parse an image tag in xml sitemap? [duplicate]如何解析 xml 站点地图中的图像标签? [复制]
【发布时间】:2021-03-10 16:24:17
【问题描述】:
<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 元素这将是错误的语法

【问题讨论】:

标签: php xml image parsing


【解决方案1】:

最好先熟悉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

【讨论】:

  • 谢谢,效果很好!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-12
  • 1970-01-01
  • 2015-06-24
  • 1970-01-01
  • 1970-01-01
  • 2011-09-21
  • 1970-01-01
相关资源
最近更新 更多