FrazeColder
Lt. Commander
- Registriert
- Okt. 2013
- Beiträge
- 1.721
Moin zusammen,
ich stehe leider wieder vor einem Problem und diesmal bin ich ratlos. Da es bei einigen XML Dateien funktioniert und bei anderen wieder nicht...
Ich führe den gleichen Befehl auf beide XML Dateien aus. Einmal auf die onlinekeystore.xml Datei und auf die g2a.xml Datei. Allerdings funktioniert es bei g2a.xml nicht und bei onlinekeystore.xml hingegen doch. Allerdings lassen sich andere XML Tags auch nicht umbenennen, obwohl ich den gleichen Befehl aufrufe.
Hat jemand eine Idee, woran das liegt und wie ich das ändern/beheben kann?
Nachfolgend der Code:
Onlinekeystore:
G2A:
renameTags:
Onlinekeystore Input:
Onlinekeystore Output:
G2A Input:
G2A Output:
Ich würde mich sehr über Hilfe freuen!
Mit freundlichen Grüßen und Vielen Dank
ich stehe leider wieder vor einem Problem und diesmal bin ich ratlos. Da es bei einigen XML Dateien funktioniert und bei anderen wieder nicht...
Ich führe den gleichen Befehl auf beide XML Dateien aus. Einmal auf die onlinekeystore.xml Datei und auf die g2a.xml Datei. Allerdings funktioniert es bei g2a.xml nicht und bei onlinekeystore.xml hingegen doch. Allerdings lassen sich andere XML Tags auch nicht umbenennen, obwohl ich den gleichen Befehl aufrufe.
Hat jemand eine Idee, woran das liegt und wie ich das ändern/beheben kann?
Nachfolgend der Code:
Onlinekeystore:
Code:
$xml = file_get_contents('data/onlinekeystore.xml');
renameTags($xml, 'priceEUR', 'price', 'data/onlinekeystore.xml');
G2A:
Code:
$xml = file_get_contents('data/g2a.xml');
renameTags($xml, 'name', 'title', 'data/g2a.xml');
renameTags:
Code:
function renameTags($xml, $old, $new, $path){
$dom = new DOMDocument();
$dom->loadXML($xml);
$nodes = $dom->getElementsByTagName($old);
$toRemove = array();
foreach ($nodes as $node) {
$newNode = $dom->createElement($new);
foreach ($node->attributes as $attribute) {
$newNode->setAttribute($attribute->name, $attribute->value);
}
foreach ($node->childNodes as $child) {
$newNode->appendChild($node->removeChild($child));
}
$node->parentNode->appendChild($newNode);
$toRemove[] = $node;
}
foreach ($toRemove as $node) {
$node->parentNode->removeChild($node);
}
$dom->saveXML();
$dom->save($path);
}
Onlinekeystore Input:
Code:
<product>
<priceEUR>5.95</priceEUR>
</product>
Onlinekeystore Output:
Code:
<product>
<price>5.95</price>
</product>
G2A Input:
Code:
<products>
<name><![CDATA[1 Random STEAM PREMIUM CD-KEY]]></name>
</products>
G2A Output:
Code:
<products>
<name><![CDATA[1 Random STEAM PREMIUM CD-KEY]]></name>
</products>
Ich würde mich sehr über Hilfe freuen!
Mit freundlichen Grüßen und Vielen Dank