如何根据参数属性从xml中获取特定值?

时间:2012-10-17 11:29:48

标签: php simplexml

XML文件包含:

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

如果我想获得“surname”参数,那么我可以使用此代码:

$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[???];

2 个答案:

答案 0 :(得分:3)

您可以使用xpath,如本答案中所述: SimpleXML: Selecting Elements Which Have A Certain Attribute Value

$simplexml->xpath('/object/data[@attribute="value"]');

答案 1 :(得分:1)

使用XPath

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

if (!empty($nodes)) {
    echo $nodes[0];
}