0
У меня есть файл XML, как это:Как получить прямой доступ к дочернему узлу для обновления/удаления?
<participants>
<participant>
<number>1</number>
<name>toto</name>
</participant>
<participant>
<number>2</number>
<name>titi</titi>
</participant>
<participant>
<number>3</number>
<name>tata</titi>
</participant>
</participants>
У меня есть номер участника и хочу получить доступ непосредственно к узлу, чтобы обновить или удалить его.
Неверная проблема $x
Из-за echo $x->number
и echo $x->name
пусто, а if - неверно.
$x = $participant->item($number);
echo 'number = '.$x->number;
echo 'name = '.$x->name;
Любая помощь пожалуйста. Благодарю.
$number=2;
if ($xml = file_get_contents($file))
{
$xmldoc = new DOMDocument('1.0', 'utf-8');
$xmldoc->loadXML($xml, LIBXML_NOBLANKS);
// find the participants tag
$root = $xmldoc->getElementsByTagName('participants')->item(0);
// get the list of participant node
$participant = $xmldoc->getElementsByTagName('participant') ;
echo $participant->length; // I have a good number of participant node
// get the node with the number i want
$x = $participant->item($number);
echo 'number = '.$x->number;
echo 'name = '.$x->name;
if ($x->number == $number) {
echo "remove";
$participant.removeChild($x);
}
}
Большое спасибо. Он работает отлично. Но я не понимаю логику, что не так, когда я пытаюсь получить доступ к $ member-> item ($ number) (ok для ошибки $ number-1) и после $ x-> number? –
Функция item() возвращает DOMElement, а DOMElement имеет методы, но не переменные или элементы. –