xpath搜索属性时出错

问题描述 投票:3回答:1

您好我想用xpath提取名称=“频率”的所有项目,其中包含一定值,但它不会给我任何东西。我究竟做错了什么?

XML文件:

<products>
    <product>
        <title>PT2400</title>
        <ElectricSpecifications>
           <item name="Frequency">2310 - 2485 MHz (WLAN, BLUETOOTH, ZIGBEE</item>
        </ElectricSpecifications>
    </product>
</products>


foreach ($xpath->query("//product/ElectricSpecifications[@item='Frequency'][contains(., ' $value')]") as $item) {
    var_dump($item);
}
php xml xpath
1个回答
4
投票

item不是ElectricSpecifications的属性,而是它的子节点,所以不是

[@item='Frequency']

语法,试试

item[@name='Frequency']

所以完整的XPath应该是这样的

//product/ElectricSpecifications/item[@name='Frequency' and contains(., ' $value')]
© www.soinside.com 2019 - 2024. All rights reserved.