【问题标题】:particluar json array in php from xml file来自xml文件的php中的特定json数组
【发布时间】:2015-03-13 04:53:03
【问题描述】:

在下面的xml文件“目录”中,每个书的id有5个变量。

<?xml version="1.0"?>
<catalog>
   <book id="bk101">
      <author>Gambardella</author>
      <title>XML Developer</title>
      <genre>Computer</genre>
      <price>44.95</price>
      <publish_date>2000-10-01</publish_date>
   </book>
   <book id="bk102">
      <author>Ralls</author>
      <title>Midnight Rain</title>
      <genre>Fantasy</genre>
      <price>5.95</price>
      <publish_date>2000-12-16</publish_date>
   </book>
   <book id="bk103">
      <author>Corets</author>
      <title>Maeve Ascendant</title>
      <genre>Fantasy</genre>
      <price>5.95</price>
      <publish_date>2000-11-17</publish_date>
    </book>
</catalog>

如何在 php.ini 中获取特定 Book id(即 book id ="102")的 json 数组。 我搜索了网络,但无法以所需的方式找到解决方案。 任何人都可以帮助我吗? xml 文件:www.mywebsite.com/catlog.xml

$data = json_decode($json, true);  
  foreach ( $data['catlog'] as $row ) {  
                        if ($row['book id'] =='102') { 
                          // do the work here
                   }
         }

【问题讨论】:

  • @Paul Crovella:在 php 中解析 json 数组
  • 在问题中添加了json php代码

标签: php arrays xml json


【解决方案1】:

你实际上不能这样做。您可以做的更好的事情是将其解析为 simplexml,然后遍历对象,然后如果特定对象已经具有“102”的属性,则只需执行一个计数器

【讨论】:

    【解决方案2】:

    我推荐的是调试,使用 print_r 来确定键值“book id”是否存在。它也将有助于稍后遍历 JSON 结构。

        foreach ( $data['catalog'] as $row ) {  
            if ($row['book id'] == '102') {
                // do the work        
            } else {
                // for debugging
                echo print_r($row, true);
            }
        }
    

    我也刚刚注意到您拼写错误的目录... $data['catlog'] 到 $data['catalog'];

    【讨论】:

    • 无法理解您的代码放入 else{ print, row}
    • print_r 所做的是向您显示行数组中的键和值。 php.net/manual/en/function.print-r.php 。它将帮助您缩小错误所在。
    • .:我的问题是如何获取图书 id ='102" 的 json 数组,而不是 xml 数组
    • 我明白,如果您尝试过,您现在就会得到答案。评论 print_r 的回复,这将使我们能够为您提供帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-11
    • 1970-01-01
    相关资源
    最近更新 更多