海,
例如,我有一个xml文件:
<bookstore> <book category="COOKING"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="WEB"> <title lang="en">XQuery Kick Start</title> <author>James McGovern</author> <author>Per Bothner</author> <author>Kurt Cagle</author> <author>James Linn</author> <author>Vaidyanathan Nagarajan</author> <year>2003</year> <price>49.99</price> </book> </bookstore>
我想要所有标题和价格
我可以写这段代码
<php
$res = $xpath->query('/bookstore/book/title');
foreach ($res as $item) {
echo "{$item->nodeValue}";
}
$res = $xpath->query('/bookstore/book/price');
foreach ($res as $item) {
echo "{$item->nodeValue}";
}
?>
但这看起来很难看, 还有另一种可能性,以便我可以组合这两个代码块吗?
这样的事情?
<php
$res = $xpath->query('/bookstore/book');
foreach ($res as $item) {
echo "{$item->title} <br/> {$item->price}";
}
?>
亲切的问候
答案 0 :(得分:1)
您可以通过连接来调整XPATH以读取'/ bookstore / book / title | / bookstore / book / price' 这将为您提供一个节点列表:
<title lang="en">Everyday Italian</title>
<price>30.00</price>
<title lang="en">XQuery Kick Start</title>
<price>49.99</price>
...
...
然后只需在每个foreach循环周期中拉出值1和2即可。
希望这有帮助!