创建一个数组来输入多个网址,而不是我现在拥有的网址

时间:2011-07-04 15:50:07

标签: php arrays dom

如何修改以下代码来获取一个xml的url,一个包含多个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 个答案:

答案 0 :(得分:1)

您必须使用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;
  }
}

?>

答案 1 :(得分:0)

您需要遍历每个文件并依次从每个文件中提取网址。 DOMDocument对象只能处理一个XML树。多个XML文件意味着多个文档根,这是不允许的。

我想您可以创建一个“元”XML文档,并将每个单独的文件作为节点插入元XML的根节点。无论哪种方式,都有点痛苦。

答案 2 :(得分:0)

$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;

}

}