1

使用 xml 阅读器时限制结果的最佳方法是什么?

我尝试过的下面的代码似乎不起作用。它不仅导入了 3 个节点,还导入了整个文件。我查看了其他论坛,并感谢 rrrfusco 和 Jose Vega从这篇文章这里是到目前为止的代码:

$i = 0;
$limit = 3;

while ($xmlReader->read()) {
if ($xmlReader->name == "product") {
$product = array();

if ($i == $limit) break;

while ($xmlReader->read()) {

$name = $xmlReader->name;

if ($name == "product") break;

  switch($name) {

    case $title:
    case $keywords:
    case $url:

    if (!isset($product[$i][$name]))
    $product[$i][$name] = $xmlReader->readString();


    break;
  }
}
$i++;

}

}
4

1 回答 1

0

这是我的解决方案,domxpath 成功了。此示例将结果限制为 10。

$dom = new DOMDocument;
$dom->Load('http://domain.xml');
$xpath = new DOMXpath($dom);




for( $h=1; $h<10; $h++ ) {
$xc = $xpath->evaluate("count(//product[".$h."]/product_name)");
echo "<h1> Hotel" .$h. "</h1>";

$x1 = $xpath->query("//product[".$h."]/product_name");
$title = $x1->item(0)->nodeValue;
echo $title."<br /><br />";


    for( $i=1; $i<$xc+1; $i++ ) {

    $x2 = $xpath->query("//product[".$h."]/url[".$i."]");
    $url = $x2->item(0)->nodeValue;


    echo "<li>".$url."</li>";


    }



}
于 2012-10-27T14:43:08.310 回答