这是我的XML文件的一部分
<item>
<title>The product</title>
<description>Product description</description>
<oldprice>350</oldprice>
<price>250</price>
<category>KIDS DISCOUNT</category>
<link>page.htm</link>
<img>product.jpg</img>
</item>
如果我想要产品折扣,那就没关系:
<?php
$xml = simplexml_load_file('file.xml');
$items = $xml->xpath('//item/category[contains(.,"DISCOUNT")]/.. ');
foreach($items as $item){
echo '<p>...</p>';
}
?>
如果我想要的产品少于300,那就OK:
<?php
$xml = simplexml_load_file('file.xml');
$items = $xml->xpath('//item/price[.<300]/.. ');
foreach($items as $item){
echo '<p>...</p>';
?>
但如果我想要两者,我不能......我试过了,但这是错的:
<?php
$xml = simplexml_load_file('file.xml');
$items = $xml->xpath('//item/price[.<300] [//item/category[contains(.,"DISCOUNT")]]/.. ');
foreach($items as $item){
echo '<p>...</p>';
?>
有人可以帮助我吗?
答案 0 :(得分:0)
要让item
的价格低于300,或者包含“DISCOUNT”文字的类别:
//item[category[contains(.,"DISCOUNT")] or price[. < 300]]
如果一个item
总是最多有一个category
和一个price
,则上述表达式可以进一步简化为:
//item[contains(category,"DISCOUNT") or price < 300]
如果您希望选择item
来完成两个条件,那么只需将or
替换为and
。