PHP: simplexml_load_string

Используя PHP simplexml_load_string, как мне получить значения тега, для которого задан определенный атрибут, равный определенному значению?


person Domspan    schedule 26.02.2011    source источник
comment
возможный дубликат php: анализ структуры таблицы с помощью SimpleXML   -  person Gordon    schedule 26.02.2011


Ответы (1)


После загрузки XML-данных вы сможете использовать SimpleXMLElement::xpath метод для выполнения XPath-запроса к нему, чтобы найти определенный элемент.


Например, учитывая, что у вас есть строка XML, и вы загружаете ее следующим образом:

$xmlString = <<<TEST
<root>
    <elt plop="test">aaa</elt>
    <elt plop="huhu">bbb</elt>
</root>
TEST;

$xml = simplexml_load_string($xmlString);

Вы можете использовать следующую часть кода, чтобы найти тег <elt>, для которого атрибут plop имеет значение huhu:

$elt = $xml->xpath('//elt[@plop="huhu"]');
var_dump($elt);

И вы получите такой вывод:

array
  0 => 
    object(SimpleXMLElement)[2]
      public '@attributes' => 
        array
          'plop' => string 'huhu' (length=4)
      string 'bbb' (length=3)
person Pascal MARTIN    schedule 26.02.2011