Как найти нужный атрибут в XML и внести изменение в следующий ?

eldic

Новичок
Доброго дня,
Понятно, что всех достали "тупые вопросы", но все же второй день потрачен на поиск решения и все никак, поэтому не сочтите за грубость и наглость. Понимаю что упускаю что-то но никак не могу понять что именно....
Есть файл data.xml следующего содержания :

<?xml version="1.0" encoding="utf-8"?>
<landsections>
<section>
<areaName>s001</areaName>
<areaStatus>small</areaStatus>
<areaSize>6</areaSize>
</section>
<section>
<areaName>s002</areaName>
<areaStatus>small</areaStatus>
<areaSize>6</areaSize>
</section>
<section>
<areaName>s003</areaName>
<areaStatus>big</areaStatus>
<areaSize>6</areaSize>
</section>
</landsections>

Необходимо в нем найти элемент атрибута areaName равный определенному значению (s001, s002 .. sN) и заменить значение атрибута areaStatus на другое (small, big) этой секции.

Нашел решение на одном из ресурсов,
PHP:
<?php
  $xml = simplexml_load_file('data.xml');

  // превращаем объект SimpleXML в DOMDocument
  $dom_sxe = dom_import_simplexml($xml);
  $dom = new DOMDocument('1.0', 'UTF-8');
  $dom_sxe = $dom->importNode($dom_sxe, true);
  $dom_sxe = $dom->appendChild($dom_sxe);

  // ищем в объекте areaName 
  $xpath = new DOMXPath($dom);
  $pos   = $xpath->evaluate('count(//section[areaName="s001"]/preceding-sibling::*)'); // нашли позицию

  // обновляем areaStatus
  $xml->section[intval($pos)]->areaStatus = "big";

  // сохраняем файл
  $xml->asXML('data.xml');
?>
но к сожалению не смог адаптировать под свою задачу т.к. не получилось разобраться с преобразованием параметров в строке :

PHP:
 $pos   = $xpath->evaluate('count(//section[areaName="s001"]/preceding-sibling::*)'); // нашли позицию
если в лоб руками прописывать areaName="s001" все работает, нареканий нет, как только перехожу к переменной areaName=$nomer результат 0 и пишется только первая строка...

Заранее благодарен.
 
Сверху