如何从XML文件下方检索图像URL?我可以在数组或对象格式中检索url
,loc
lastmod
,changefreq
,priority
。但是图像,LOC,标题不是。请告诉我存在哪种解决方案?
我能够检索XML对象的下方。
SimpleXMLElement Object
(
[url] => Array
(
[0] => SimpleXMLElement Object
(
[loc] => https://test_url//search?tags=Auto%20Repairs
[lastmod] => 2017-08-15
[changefreq] => daily
[priority] => 0.5
)
)
)
我的XML文件代码如下。
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<url>
<loc>https://test_url/search?tags=Auto%20Repairs</loc>
<lastmod>2017-08-15</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
<image:image>
<image:loc>https://media.test_url/1476130698_business_images.png</image:loc>
<image:title>RV Services Near Me</image:title>
</image:image>
<image:image>
<image:loc>https://media.test_url/1470780022.jpg</image:loc>
<image:title>RV Services Near Me</image:title>
</image:image>
<image:image>
<image:loc>https://media.test_url/1477691994.jpg</image:loc>
<image:title>RV Services Near Me</image:title>
</image:image>
<image:image>
<image:loc>https://media.test_url/1466467993.jpg</image:loc>
<image:title>RV Services Near Me</image:title>
</image:image>
</url>
</urlset>
您在特定名称空间中处理元素的处理在这种情况下,前缀(。因此,->children("image", true);
将提取图像名称空间中的所有节点,然后一次使用foreach()
进行每个节点。
$xml = simplexml_load_file($fileName);
$images = $xml->url->children("image", true);
foreach ( $images as $image ) {
echo $image->loc."=".$image->title.PHP_EOL;
}
这会生成...
https://media.test_url/1470780022.jpg=RV Services Near Me
https://media.test_url/1477691994.jpg=RV Services Near Me
https://media.test_url/1466467993.jpg=RV Services Near Me
请检查以下围绕代码的工作。这肯定会帮助您继续前进。请让我知道是否对您有帮助。
<?php
$xmlstr = '<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<url>
<loc>https://test_url/search?tags=Auto%20Repairs</loc>
<lastmod>2017-08-15</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
<image:image>
<image:loc>https://media.test_url/1476130698_business_images.png</image:loc>
<image:title>RV Services Near Me</image:title>
</image:image>
<image:image>
<image:loc>https://media.test_url/1470780022.jpg</image:loc>
<image:title>RV Services Near Me</image:title>
</image:image>
<image:image>
<image:loc>https://media.test_url/1477691994.jpg</image:loc>
<image:title>RV Services Near Me</image:title>
</image:image>
<image:image>
<image:loc>https://media.test_url/1466467993.jpg</image:loc>
<image:title>RV Services Near Me</image:title>
</image:image>
</url>
</urlset>';
/* here i am deleting colon */
$CleanXML = str_replace(["image:image", "image:loc", "image:title", "xmlns:image", "xsi:schemaLocation", "xmlns:xsi"],["imageimage","imageloc","imagetitle", "xmlnsimage", "xsischemaLocation", "xmlnsxsi"], $xmlstr);
$ParseData = @simplexml_load_string($CleanXML);
echo "<pre>";
print_r($ParseData);