: Olası bir fikir olacaktır
- Create a new
$destination instance of DOMDocument
- Bir
<statuses> düğüm ile başlatılamıyor
- For each of your 3 XML strings :
- başka bir örneğine yük
DOMDocument: $currentDocument
$currentDocument->getElementsByTagName ile <status> düğümü veya bir eşdeğer bulmak
$destination->importNode ile sadece $destination belgeye buldum <status> düğümü, ithalat
- Her XML dize üzerinde döngü tamamlandığında,
$destination belge istediğini içermelidir, ve sen kullanarak kaydedebilirsiniz $destination->saveXML
And here's a quick example of code that could help you understand what I meant :
Öncelikle, burada XML dizeler dizisi - Ben onları çok daha kısa yaptık, ama fikir ne var ki aynı:
$strings = array(
'<?xml version="1.0" encoding="UTF-8"?>
<statuses type="array"><status>
<id>ID 1</id>
</status></statuses>',
'<?xml version="1.0" encoding="UTF-8"?>
<statuses type="array"><status>
<id>ID 2</id>
</status></statuses>',
'<?xml version="1.0" encoding="UTF-8"?>
<statuses type="array"><status>
<id>ID 3</id>
</status></statuses>',
);
Let's create the destination document, and put a <statuses> tag in it :
$destination = new DOMDocument();
$destination->formatOutput = true;
$destinationStatuses = $destination->createElement('statuses');
$destination->appendChild($destinationStatuses);
Now, we loop over the 3 XML strings :
foreach ($strings as $str) {
$current = new DOMDocument();
$current->loadXML($str);
$currentStatuses = $current->getElementsByTagName('status');
foreach ($currentStatuses as $currentStatus) {
$destinationStatus = $destination->importNode($currentStatus, true);
$destinationStatuses->appendChild($destinationStatus);
}
}
For each string, we :
- Yeni bir
DOMDocument bunu yükleyin
- Bul
<status> tag (s)
- Her
<status> etiketi, hedef belgede içe
- Ve
<statuses> etiketi eklemek
And, finally, if we output the content of the new document :
echo '<pre>' . htmlspecialchars($destination->saveXML()) . '</pre>';
We get :
<?xml version="1.0"?>
<statuses>
<status>
<id>ID 1</id>
</status>
<status>
<id>ID 2</id>
</status>
<status>
<id>ID 3</id>
</status>
</statuses>
yani bizim üç <status> Üç özgün dizeleri tek bir XML belgesi haline birleştirilmiştir ;-)