Поток такой:
$xml = new XMLWriter();
$xml->openURI('file.xml');
$xml->setIndent(4);
$xml->startDocument('1.0');
$xml->startElement('second');
$xml->endElement();
Теперь я хочу добавить элемент в начале (перед вторым)
$xml->startElement('first');
$xml->endElement();
Как я могу сменить элемент первым перед вторым?
Вы можете добавить свой элемент в массив и отсортировать его, как вы хотите. По ключу например.
После, вы можете использовать foreach (или другой) для добавления ваших элементов
$elements[1] = 'second';
# do somethings
$elements[0] = 'first';
foreach ($elements as $key => $element) {
$xml->startElement($element);
}
XMLWriter
нет возможности манипулировать узлами (apend after, apend before), поэтому нет встроенного решения для этой проблемы.