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 回答