用PHP输出DOM

时间:2016-08-02 06:28:54

标签: php dom

我习惯使用JSON,它似乎与DOM有点不同。这里显示的不仅仅是3个:

<item>
  <ItemID>   </ItemID>
  <Title>  </Title>
</item>
<item>
  <ItemID>   </ItemID>
  <Title>  </Title>
</item>
<item>
  <ItemID>   </ItemID>
  <Title>  </Title>
</item>

这是我尝试使用的代码:

$response = curl_exec($connection);
curl_close($connection);

$dom = new DOMDocument();
$dom->loadXML($response);

$items = $dom->getElementsByTagName("item");

foreach($items as $mydata) {
    $id = $mydata->getElementsByTagName('ItemID');
    $title = $mydata->getElementsByTagName('Title');
echo $id;
echo $title;

}

主要想将这些值输入到DB中。如下所示:

$query .= "INSERT INTO `$table` "."(id, title) .........

我似乎无法将ID和标题从DOM中删除。

2 个答案:

答案 0 :(得分:0)

第一个错误是忽略区分大小写。标签应该与提供的xml具有相同的情况。

第二个错误 - getElementsByTagName返回DOMNodeList,它是元素的集合。因此,您要么迭代它,要么使用item()方法。

$dom = new DOMDocument();
$dom->loadXML($response);

$items = $dom->getElementsByTagName("item");  // not `Item`

foreach ($items as $mydata) {
    $id = $mydata->getElementsByTagName('ItemID');  // not `ItemId`
    $title = $mydata->getElementsByTagName('Title');

    // get first element of each collection
    echo $id->item(0)->nodeValue;
    echo $title->item(0)->nodeValue;
}

答案 1 :(得分:0)

.wrapper-header {
    padding-right: $spacing-unit;
    padding-left: $spacing-unit;
    @extend %clearfix;

    @include media-query($on-laptop) {
        padding-right: $spacing-unit / 2;
        padding-left: $spacing-unit / 2;
    }
}

添加 - &gt; item(0) - &gt; nodeValue;最后做了伎俩!谢谢大家帮我把它组合在一起!

布赖恩