прямой доступ к атрибуту и выборка дочерних элементов

alexblade

Новичок
прямой доступ к атрибуту и выборка дочерних элементов

имеется xml
PHP:
<bar>
<person sex="0">
  <firstname>Anna</firstname>
  <lastname>Smith</lastname>
</person>
<person sex="1">
  <firstname>Anna1</firstname>
  <lastname>Smith</lastname>
</person>
<person sex="2">
  <firstname>Anna2</firstname>
  <lastname>Smith</lastname>
</person>
<person sex="1">
  <firstname>Anna3</firstname>
  <lastname>Smith</lastname>
</person>
</bar>
разобрался, как форычем перебрать весь массив, и когда атрибут секс равен нужному (например 2) присвоить переменным firstname и lastname соответствующие значения.

Но не могу разобратся как зная сразу значение атрибута секс (например 2)
выполнить прямой доступ к этому элементу
и в нутри него присвоить значения известных дочерних элементов <firstname> и <lastname> своим переменым firstname и lastname ?
 

alexblade

Новичок
update:
элемент с атрибутом секс=2 не всегда по [2] позиции, при каждом обращени он на новом месте может [0] может [4]
// нашол как обратиться зная место... а вот не зная место но зная значения атрибута пока не нашол.

Alexandre
с помощью simpleXML и делаю первым вариантом, с помощью форыч, перебираю все элементы <person> и там где атрибут секс == 2 и провожу присвоение значений <firstname> и <lastname> переменым firstname и lastname

а интересует можно ли (и с помощью чего) стандартной пятой комплектацией php
сразу обратится только к тому <person> где секс==2
и дальше уже присваивать переменным нужные значения ?
 

Alexandre

PHPПенсионер
xpath
делаем выборку по '/bar/person[@sex=2]'
а далее foraech выбираем все ноды из нашего NodeList
$node->firstname; $node->lastname;
 

maxwell

artifex
Alexandre, все верно написал.
alexblade, для пола хватает двух значений.
 
Сверху