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

コードを少し間違えただけで、すべてのエントリから 1 つのエントリだけを変数に割り当てています。

list ($gender_id) = ...

http://php.net/listを参照してください。配列全体を取得する場合は、次のように割り当てます。

$gender_ids = ...

http://php.net/arrayと、PHP でコードを記述する方法、その基本的な構文に関する非常に基本的な説明も参照してください。

于 2013-04-10T08:52:51.637 に答える