PHP expert |
|
Ey, ik heb weer een probleem met xml. Ik moet een stuk uit een xml bestand vinden en daar dan element toevoegen. Dit lijkt makkelijk en is ook zo in de meeste gevallen maar omdat er namespaces in de xml van Word word gebruikt ik fouten. Dit is mijn xml die ik moet toevoegen in het bestand.
<w:p>
<w:pPr>
<w:jc w:val="center"/>
<w:rPr>
<w:rFonts w:ascii="Arial" w:hAnsi="Arial"/>
<w:color w:val="000000"/>
<w:sz w:val="34"/>
<w:szCs w:val="34"/>
</w:rPr>
</w:pPr>
<w:r>
<w:t xml:space="preserve">TT HALL ASSEN</w:t>
</w:r>
</w:p>
<w:p> <w:pPr> <w:jc w:val="center"/> <w:rPr> <w:rFonts w:ascii="Arial" w:hAnsi="Arial"/> <w:color w:val="000000"/> <w:sz w:val="34"/> <w:szCs w:val="34"/> </w:rPr> </w:pPr> <w:r> <w:t xml:space="preserve">TT HALL ASSEN</w:t> </w:r> </w:p>
Maar omdat ik de namespaces zelf niet in dit document heb (staat in het document waar dit stuk bijgevoegd moet worden), krijg ik de volgende fout.
Citaat: Warning: simplexml_load_string() [function.simplexml-load-string]: namespace error : Namespace prefix w on p is not defined in
Ik moet dus door het xml stukje heen loopen en dan met SimpleXMLElement::addChild de childs toevoegen. Dit lukt wel zolang alles maar op "level" hoeft te staan, maar als ik het net zoals in het xml bestand wil hebben, dus met de childs dan krijg ik het niet voor elkaar. Iemand die me kan helpen?
Ik gebruik dit om door bovenstaand xml te loopen, de rest stelt niet veel voor want dat werkte allemaal niet.
<?php
$oParser = xml_parser_create();
xml_parser_set_option($oParser, XML_OPTION_CASE_FOLDING, 0);
xml_parser_set_option($oParser, XML_OPTION_SKIP_WHITE, 1);
xml_parse_into_struct($oParser, $oWriter->writeText($oText)->outputMemory(true), $aValues, $aIndex);
xml_parser_free($oParser);
foreach($aValues as $aTag) {
if($aTag['type'] == 'open') {
?>
<?php foreach($aValues as $aTag) { if($aTag['type'] == 'open') { ?>
Niemand die me kan helpen .
|