xmlreader php,PHP – 非常基本的XMLReader

你的循环条件被破坏了.如果你得到一个元素并且元素名称是“product”,则循环.文档元素是“products”,因此循环条件永远不会为TRUE.

您必须知道read()和next()正在移动内部游标.如果它在< product>上node,read()会将其移动到该节点的第一个子节点.

$reader = new XMLReader;

$reader->open($file);

$dom = new DOMDocument;

$xpath = new DOMXpath($dom);

// look for the first product element

while ($reader->read() && $reader->localName !== 'product') {

continue;

}

// while you have an product element

while ($reader->localName === 'product') {

$node = $reader->expand($dom);

var_dump(

$xpath->evaluate('string(@category)', $node),

$xpath->evaluate('string(name)', $node),

$xpath->evaluate('number(price)', $node)

);

// move to the next product sibling

$reader->next('product');

}

输出:

string(7) "Desktop"

string(14) " Desktop 1 (d)"

float(499.99)

string(6) "Tablet"

string(12) "Tablet 1 (t)"

float(1099.99)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>