0

XML ファイルには以下が含まれます。

<list1>
  <dzial>
    <ofert>
      <param name="surname" type="text">Something</param>
      <param name="number" type="text">4234-343-3</param>
    </ofert>
  </dzial>
</list1>

「姓」パラメーターを取得したい場合は、次のコードを使用できます。

$xml = simplexml_load_file('test.xml');

if ($xml->list1[0]->dzial[0]->ofert[0]->param[0]=="Something") 
  echo "works!";

しかし、私は別の方法でそれをやりたいと思っています。その属性に従ってパラメータを選択したいname="surname"。どうやってやるの?

echo $xml->list1[0]->dzial[0]->ofert[0]->param[???];
4

2 に答える 2

3

この回答で説明されているように、xpath を使用できます: SimpleXML: 特定の属性値を持つ要素の選択

$simplexml->xpath('/object/data[@attribute="value"]');
于 2012-10-17T11:39:47.017 に答える
1

XPathを使用します。

$xml = simplexml_load_file('test.xml');
$nodes = $xml->xpath('//param[@name="surname"]');

if (!empty($nodes)) {
    echo $nodes[0];
}
于 2012-10-17T11:34:11.263 に答える