当前位置: 首页 > 知识库问答 >
问题:

PHP在解析XML时缺少属性

司空朝
2023-03-14

我有一个来自API的xml。

    <response>
<ads numAds="2">
<ad ranking="1">
<title>Artist News on Facebook®</title>
<description>
What&#39;s the most current music news? Sign up For Free to Find out!
</description>
<pixel_url>
http://cc.xdirectx.com/pixellink.php?qry=e8b6b726c
</pixel_url>
<url visibleurl="Facebook.com">
http://cc.xdirectx.com/clicklink.php?qry=067a9027
</url>
</ad>
<ad ranking="2">
<title>Artist News on Facebook®</title>
<description>
What&#39;s the most current music news? Sign up For Free to Find out!
</description>
<pixel_url>
http://cc.xdirectx.com/pixellink.php?qry=e8b6b726c
</pixel_url>
<url visibleurl="Facebook.com">
http://cc.xdirectx.com/clicklink.php?qry=067a9027
</url>
</ad>
</ads></response>

当我尝试使用simplexml\u load\u字符串或simplexmlement进行解析时,我得到了这个结果。

[广告]=

        [ad] => Array
            (
                [0] => SimpleXMLElement Object
                    (
                        [@attributes] => Array
                            (
                                [ranking] => 1
                            )

                        [title] => Artist News on Facebook®
                        [description] => What's the most current music news? Sign up For Free to Find out!
                        [pixel_url] => http://cc.xdirectx.com/pixellink.php?qry=e8b6b726c
                        [url] => http://cc.xdirectx.com/clicklink.php?qry=067a9027
                    )
               )

重要的是缺少我需要的url visibleurl属性。我试着在网上找,浪费了一整天来解决这个问题,但没有答案。有人能纠正我正在做的错误吗?

PHP代码

$result = getCurlJson($urlParse);
$output = simplexml_load_string($result) or die("Error: Cannot create object");
echo '<pre>';
print_r($output);
echo '</pre>';

function getCurlJson($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_URL, $url);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

共有1个答案

索卓
2023-03-14

XML的加载工作正常,但是print_r不能打印XML对象中的所有内容。如果要转储XML代码,请参阅此存储库以获得解决方案:simplexml_debug

您可以使用访问所需的属性

echo $output->ads->ad[0]->url->attributes();

这很好用。

 类似资料:
  • 我必须解析一个XML,其中缺少xmlns: xsi="http://www.w3.org/2001/XMLSchema-instance"命名空间,所以xml看起来像这样: 但应该是这样的: type属性确保了正确的子类。 解析器是通过一个手写的xsd自动生成的$ 一个简单的解决方案是在输入XML上运行一个字符串替换(type=\\"到xsi: type=\"),但这很难看。有没有更好的解决办法?

  • 我有来自API的json形式的对象列表。这些对象有一些属性,问题是一些对象缺少属性。那么如何无错误地解析其他属性的数据呢? 例如,我有这个缺少的属性 但这所有属性都存在:

  • 本文向大家介绍用PHP解析XML,包括了用PHP解析XML的使用技巧和注意事项,需要的朋友参考一下 XML数据提取可能是一项常见的任务,但是要直接使用此数据,您需要了解PHP如何解析XML。在PHP中解析XML涉及各种不同的功能,所有这些功能协同工作以从XML文档中提取数据。我将完成所有这些功能,并在最后将它们联系在一起。 xml_parser_create() 此函数用于创建解析器对象,该对象将

  • simplexml_load_string()似乎不是以下xml的工作形式 上面的xml是响应的一部分,因此当得到结果时,它只包含属性 结果是SimpleXMLElement的一个对象,只有一个属性数组 它没有任何与“Chat_valiable”或隐藏相关的内容。 能找个人帮忙吗

  • 我在中遇到一个问题。它显示以下错误。我试图通过添加所需的依赖项来更新maven,但无法解决这个问题。 资源路径位置类型缺少工件组织。springframework。安全性:Spring Securityweb:jar:4.2.2。构建快照pom。xml/Spring Security示例xml不安全第171行Maven依赖问题

  • 我正在VSCode中使用OpenAPI 3编写一个API文档,扩展为OpenAPI(Swagger)Editor v4.9.1。直到今天它都运行良好-突然我的文档在所有模式声明中充满了“属性”错误。错误是: