1

这是我的 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_id1, 2(这是product_id)。

4

2 回答 2

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 />"; 

现场演示:http ://codepad.viper-7.com/h0Ckxc

于 2013-04-10T09:33:14.473 回答
0

您只是在代码中犯了一个小错误,您只为变量分配了一个条目:

list ($gender_id) = ...

请参阅http://php.net/list。如果要获取整个数组,请将其分配:

$gender_ids = ...

另请参阅http://php.net/array以及关于如何在 PHP 中编写代码的非常基本的描述,它的基本语法。

于 2013-04-10T08:52:51.637 回答