PHP XML DOM childrends kopieren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Stars satsr

stars satsr

16/11/2010 19:50:11
Quote Anchor link
Hallo,

Ben al een tijdje bezig om alleen de childrens van file1.xml te kopiëren naar nieuw file2.xml met nieuwe root en attributes.
Het maken van attributes met nieuwe root lukt me wel alleen hoe krijg ik daar dus die gekloonde/gekopieerde chidrens van file1.xml in??

Dus file1.xml =

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?xml version="1.0" encoding="utf-8"?>

<root >
<title>Jhon Haas</title>
</root>

en file2.xml moet zijn

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?xml version="1.0" encoding="utf-8"?>

<nieuwe root attr='bla' >
<title>Jhon Haas</title> // gekopieerde childrens van file1.xml
</root>


Heeft iemand een tip want ik ben ma aan het rommelen hey?

Dus wat ik tot nu toe heb


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php>
        $dom = new DOMDocument('1.0', 'utf-8');
    $element = $dom->createElement($myattr, 'test')
    $newnode = $dom->appendChild($element);
    $newnode->setAttribute("id", "55");
        print $dom->saveXML(). "\n";

        $file= file2.xml
        $dom->load('file1.xml');

        // en dan hier de childrens copieren en nieuwe xml maken met nieuwe root.

        $newcontent= $dom->saveXML();
        if (file_put_contents($file, $newcontent)) {
            echo "new xml saved!!!". "\n";
        }


?>

Thanx
Gewijzigd op 16/11/2010 20:06:17 door Stars satsr
 
PHP hulp

PHP hulp

25/04/2024 02:31:04
 
Noppes Homeland

Noppes Homeland

16/11/2010 20:43:58
Quote Anchor link
En waarom sla je de XML op ment file_put_contents, dat valt onder het kopje oerdom

http://nl.php.net/manual/en/domdocument.save.php

en kijk dan ook gelijk naar:
http://nl.php.net/xsl
 
Toby hinloopen

toby hinloopen

16/11/2010 21:06:03
Quote Anchor link
children is meervoud van child
"childrens" is dus niks.


Probeer het eens met DOMDocument::importNode
> http://nl2.php.net/manual/en/domdocument.importnode.php

Met importNode kan je een Node uit document A "importeren" voor gebruik in document B.

zoiets krijg je dan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
Document a = ...;
Document b = ...;

Node aNode = a.getElement(...);
Node bNode = b.importNode(aNode);
Node bParent = b.getElement(...);
bParent.appendChild(bNode);
Gewijzigd op 16/11/2010 21:10:43 door toby hinloopen
 
Stars satsr

stars satsr

16/11/2010 21:52:05
Quote Anchor link
Ja helemaal top Hoppes en Toby!!!!

Super bedankt ik denk dat ik er uit kom alleen nog klein vraagje????? Hoe kan ik ervoor zorgen dat de xml die geschreven wordt ook leesbaar blijft in layout?

Dus

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?xml version="1.0" encoding="utf-8"?>

<root>
<child> test
</child>
</root>

i.p.v

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?xml version="1.0" encoding="utf-8"?>
<root><child> test</child></root>


is hier een trucje voor? Vast bedankt iedereen!
 
Noppes Homeland

Noppes Homeland

16/11/2010 21:54:32
 
Th van

Th van

16/11/2010 21:55:36
Quote Anchor link
Ik denk dat je dan dit moet gebruiken:http://www.php.net/manual/en/class.domdocument.php#domdocument.props.formatoutput dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$domobj->formatOutput = true;
 

16/11/2010 23:04:15
Quote Anchor link
Noppes Homeland op 16/11/2010 21:54:32:


En waarom dan hé?
Waarom XSL hé?
Het is namelijk zoals die post boven mij zegt formatOutput is.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.