У меня есть xml-файл от клиента, который не дополняет то, что я хочу, поэтому я должен его переписать.PHP Переместить узлы DOMDocument в новый родительский
Это то, что я есть:
<artikel>
<kop>
<titel>Artikel 2.</titel>
</kop>
<lid>
<lidnr>1</lidnr>
<al>content</al>
</lid>
<lid>
<lidnr>2</lidnr>
<al>content</al>
</lid>
</artikel>
и это то, что мне нужно:
<artikel>
<kop>
<titel>Artikel 2.</titel>
</kop>
<leden>
<lid>
<lidnr>1</lidnr>
<al>content</al>
</lid>
<lid>
<lidnr>2</lidnr>
<al>content</al>
</lid>
</leden>
</artikel>
Я не знаю XML очень хорошо, поэтому у меня есть проблемы. Я думаю, что это должно было быть сделано:
1) создать new_parent_node «leden» 2) за «крышкой»: добавить «крышку» на «leden» узел и удалить из «другой статьи» узловой 3) добавить новый узел "leden" после того, как "коп" узел
Это то, что я до сих пор:
$dom->load($publicatieurl_xml);
$artikels = $dom->getElementsByTagName('artikel');
foreach ($artikels as $key => $artikel) {
$lidNodes = $artikel->getElementsByTagName('lid');
if ($lidNodes->length !== 0) {
$new_parent_node = $dom->createElement('leden');
foreach ($lidNodes as $key => $lid) {
$new_parent_node->appendChild($lid);
}
echo ($new_parent_node->ownerDocument->saveXML($new_parent_node));
}
}
Если это не работает: $ new_parent_node-> AppendChild ($ крышкой); потому что это объект.
Так что мне нужно знать:
1) Как я могу добавить уже существующий XML-элемент «$ крышки» на мой «leden» узел 2) как я удалить «крышку» узлы ? Еще одна петля foreach? Потому что я не могу удалить его в тот, где я добавляю $ lid, потому что это разрушает элементы foreach ...