Создайте массив для ввода нескольких URL-адресов вместо того, который у меня есть сейчас - PullRequest
0 голосов
/ 04 июля 2011

Как я могу изменить следующий код, чтобы получить вместо URL-адреса один xml, массив с несколькими URL-адресами? Приведенный ниже код работает правильно, но, как я сказал для одного файла.

<?php

$dom = new DOMDocument;
$dom->loadHTMLFile ('domain.com/xmlfile.xml');

$xPath = new DOMXPath($dom);

$posts = $xPath->query('//page');

foreach($posts as $post) {

$fans = $post->getElementsByTagName( "fan_count" )->item(0)->nodeValue;
echo $fans;

}

?>

Ответы [ 3 ]

1 голос
/ 04 июля 2011

Вы должны использовать цикл foreach.

<?php

$files = array('file1.xml', 'file2.xml', 'file3.xml');

foreach ( $files as $file ) {
  $dom = new DOMDocument;
  $dom->loadHTMLFile($file);

  $xPath = new DOMXPath($dom);

  $posts = $xPath->query('//page');

  foreach($posts as $post) {
    $fans = $post->getElementsByTagName('fan_count')->item(0)->nodeValue;

    echo $fans;
  }
}

?>
0 голосов
/ 04 июля 2011
$arr = array(0 => "url1", 1 => "url1");

for($i=0;$i<2;$i++)
{


$dom = new DOMDocument;
$dom->loadHTMLFile ($arr[$i]);

$xPath = new DOMXPath($dom);

$posts = $xPath->query('//page');

foreach($posts as $post) {

$fans = $post->getElementsByTagName( "fan_count" )->item(0)->nodeValue;
echo $fans;

}

}

0 голосов
/ 04 июля 2011

Вам нужно было бы перебирать каждый файл и извлекать URL-адреса каждого из них по очереди.Объект DOMDocument может обрабатывать только одно единственное дерево XML.Несколько файлов XML подразумевают наличие нескольких корней документов, что недопустимо.

Полагаю, вы могли бы создать «мета» документ XML и вставить каждый отдельный файл в качестве узла от корневого узла мета XML.В любом случае, немного больно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...