【问题标题】:PHP XML Parser for parent:child details父:子详细信息的 PHP XML 解析器
【发布时间】:2016-02-28 11:04:36
【问题描述】:

我有以下 XML 架构:

<url>
   <loc>
      https://www.domain.com/artcile-title-x
   </loc>
   <mobile:mobile/>
   <image:image>
      <image:loc>
          https://www.domain.com/images/file_name.jpg
      </image:loc>
      <image:title>file_name.jpg</image:title>
   </image:image>
   <lastmod>2015-11-29T06:17:25+00:00</lastmod>
   <changefreq>monthly</changefreq>
</url>

使用 simplexml_load_file 函数,我可以正确提取“loc”。问题在于“图像”。我尝试了很多测试,但没有。也许 simplexml_load_file 不是正确的?

例如:

//XML url location
$xmlurl = "https://www.domain.com/sitemap.xml";

//get the content in the $xmlcode var
$xmlcode = simplexml_load_file($xmlurl);

//for each "section" extracted obtain LOC and IMAGE
foreach($xmlcode->url as $single_section)
{
    //obtain the information URL->LOC
    $loc_extracted = $single_section->loc;

    echo "URL Extracted: " . $loc_extracted . "<br>";

    //obtain the information URL->IMAGE
    $image_extracted = $single_section->image->loc;

    echo "IMG Extracted: " . $image_extracted[0] . "<br>";
}

我已经尝试了很多测试,例如:

$image_extracted = $single_section->image->image->loc;
or
$image_extracted = $single_section->image->image->image->loc;
or
$image_extracted = $single_section->image; //and use it as an array
or
$image_extracted = $single_section->image['image']->loc;
or
$image_extracted = $single_section->image['image']->image->loc;

观察 XML 文件及其构建方式非常重要。 从同一个“url”部分我必须提取“loc”和“images:images/images:loc”细节。

我尝试了这个可能的解决方案:Parse XML with Namespace using SimpleXML

但它不适合提取简单参数(loc)和带节点参数(images/loc)的需要。

【问题讨论】:

标签: php xml xml-parsing parent-child


【解决方案1】:

“我尝试了这个可能的解决方案:Parse XML with Namespace using SimpleXML

但它不适合提取简单参数(loc)和带节点的参数(images/loc)的需要。”

我可能误解了这个问题,但如果您愿意,可以将这两种方法结合起来。使用xpath(),如上面链接中所述,仅用于访问前缀元素:

//obtain the information URL->IMAGE
$image_extracted = $single_section->xpath('image:image/image:loc');

echo "IMG Extracted: " . $image_extracted[0] . "<br>";

快速测试:https://eval.in/526834

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多