多维数组循环未显示xml api中的所有值

时间:2017-02-11 10:52:56

标签: php

我正在与uspto专利授权api合作。我刚刚编写了一个示例代码来获取结果。结果以xml格式我解析了xml,我想使用foreach循环显示标题,但只显示一个值。

的index.php

$(document).ready(function() {
    $('#term').click(function(e) {
        e.stopPropagation();
        $('.dim').css('opacity', '0.5');
    });
    $(document).on("click", function() {
        $(this).find('.dim').css('opacity', '0');
    });
});

usptodata.xml

<?php

$data = file_get_contents('usptodata.xml');
$arr =  simplexml_load_string($data);
foreach($arr->result as $values){
    echo $values->doc->str[6];  
}

?>

在输出中,只有单个标题会像这样出现。 “指定委托人利益(查看详情资料)。”。我如何获得所有索引[6]标题。

1 个答案:

答案 0 :(得分:2)

我想它应该是:

$data = file_get_contents('usptodata.xml');
$arr =  simplexml_load_string($data);
// proper variant
foreach($arr->result->doc as $cur_doc){
    echo $cur_doc->str[6] . PHP_EOL;  
}

解释:因为你有result对象,它是$arr的一部分,你需要迭代它的doc属性,所以它是{{1 }}

在您的初始案例中:$arr->result->doc表示“迭代$arr->result的所有子项”,但result只有一个子项:result 。因此,doc仅需foreach而不会更深入并迭代doc子项。