这是我的XML文件:
<products>
<product_id value="1">
<tab_id value="351">
<city_name value="Jamnagar"/>
<individual_sex value="2"/>
</tab_id>
</product_id>
<product_id value="2">
<tab_id value="352">
<city_name value="Rajkot"/>
<individual_sex value="2"/>
</tab_id>
</product_id>
</products>
这是我在php XPath中的尝试
list ($gender_id) = $product->xpath("//individual_sex[@value='$sex']/../../@value");
我尝试检查individual_sex
属性值是否匹配,然后同时返回product_id
和1, 2
(这是product_id
)。
答案 0 :(得分:1)
正如几个用户已经说过的那样,您的xpath
没问题,但您在这里使用list
不正确。
要访问<product_id>
的各个值,请执行:
// assuming $xml is your simplexml-object...
$results = $xml->xpath("//individual_sex[@value='2']/../../@value");
foreach ($results as $result) echo $result['value'],"<br />";
live-demo:http://codepad.viper-7.com/h0Ckxc
答案 1 :(得分:0)
你刚刚在代码中犯了一个小错误,你只需要为变量分配一个条目:
list ($gender_id) = ...
见http://php.net/list。如果要获取整个数组,请指定它:
$gender_ids = ...
请参阅http://php.net/array以及有关如何使用PHP编写代码的基本描述,即基本语法。