1

私は simpleXML と php を使用しています。別の子要素の値に基づいて、ページに特定の子要素にアクセスさせようとしています。特定の親のすべての子をループせずにこれを行う方法について、私は非常に混乱しています。xpathでこれをやってみましたが、適切な形式がわかりません。私のXMLは次のとおりです。

<vendor>
  <vendor_id>6</vendor_id>
     <name>Store</name>
       <stock>
          <stock_id>4</stock_id>
          <stock_url>http://www.url.com/item.php</stock_url>
       </stock>
       <stock>
           <stock_id>9</stock_id>
           <stock_url>http://www.url.com/items.php</stock_url>
       </stock>
    </vendor>

特定の株式IDのstock_urlにアクセスしたい。これは可能ですか、それとも在庫のすべてのインスタンスをループして、必要なものを見つけるために比較を行う必要がありますか?

4

1 に答える 1

1

これは次のことを行う必要があります。

$xml = new SimpleXMLElement($string); // <-- assuming the XMl you mentioned above is in $string
$stock_id = 9;
$result = $xml->xpath('/vendor/stock[stock_id='.$stock_id.']');
if(!empty($result)) $url = $result[0]->stock_url;
于 2013-08-25T21:40:34.040 に答える