0

私はこのように見えるXMLを持っています:

<?xml version="1.0" ?>
<rss version="2.0">
  <channel>
      <title>get_news_category</title>
    <item>
        <id>10502</id>
        <title>Cheesecake</title>
        <summary>SummaryBlahblah</summary>
    </item>
    <item>
        <id>13236</id>
        <title>Moto</title>
        <summary>summary blahblah</summary>
    </item>

そして、アイテムをphp配列に入れたいです。

私はこれまでに行ってきました:

    $nodes = $dom->getElementsByTagName('item')->item(0);

    $values = $nodes->getElementsByTagName("*");

    $articles = array();

    foreach ($values as $node) {
      $articles[$node->nodeName] = $node->nodeValue;
    }

    var_dump($articles);

<item>これは、1 つの要素である配列で私を返すだけです。私が彼に言ったので、これは論理です->item(0)

では、すべての項目を配列に入れるためにすべての項目を選択する方法は?

ありがとう。

4

2 に答える 2

1

使用する$nodes->length

$dom = new DOMDocument();
$dom->loadHTML($html);
$nodes = $dom->getElementsByTagName('item');

for($i=0; $i<$nodes->length; $i++){

    $values = $nodes->item($i)->getElementsByTagName("*");

    $articles = array();

    foreach ($values as $num => $node) {
        $articles[$i][$node->nodeName] = $node->nodeValue;
    }

    var_dump($articles);
}
于 2012-08-24T12:35:27.360 に答える
1

$nodes を繰り返す必要があります。

$nodes = $dom->getElementsByTagName('item');
for ($i = 0; $i < $nodes->length; $i++)
{
     // Lets grab the node
     $values = $nodes->item($i)->getElementsByTagName("*");
}
于 2012-08-24T12:31:18.823 に答える