gpt4 book ai didi

php - 基于2个子元素选择元素

转载 作者:行者123 更新时间:2023-12-03 16:52:22 24 4
gpt4 key购买 nike

这是我的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,可以:

<?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>';
?>


有人可以帮助我吗?

最佳答案

要获取价格低于300或类别包含文本“ DISCOUNT”的item

//item[category[contains(.,"DISCOUNT")] or price[. < 300]]


如果一个 item始终最多具有一个 category和一个 price,则上述表达式可以进一步简化为:

//item[contains(category,"DISCOUNT") or price < 300]


如果要选择 item满足这两个条件,则只需将 or替换为 and

关于php - 基于2个子元素选择元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40833476/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com