Versio

xml tag toevoegen

Overzicht Reageren

Opolo Webdesign

Opolo Webdesign

09/01/2012 14:36:11
Quote Anchor link
Ik heb de volgende xml (snippet):

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
<?xml version="1.0" encoding="UTF-8"?>
<document xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <tekstblok artikel="1">
      <target data="en-UK">
         <Productnaam>Onion box</Productnaam>
         <Subtekst>ca. 11 x 12 cm</Subtekst>
         <Waarschuwingstekst/>
      </target>
      <target data="de-DE">
         <Productnaam>Zwiebel-Dose</Productnaam>
         <Subtekst>ca. 11 x 12 cm</Subtekst>
         <Waarschuwingstekst/>
      </target>
      etc.
   </tekstblok>
</document>


Nu moet er tussen de target tags een extra tag (<taalcode>) komen waarvan de waarde afhankelijk is van de attribute "data". Ken dit of is het een kwestie van de xml als platte tekst inlezen en zoek/vervangen toepassen?
 
PHP hulp

PHP hulp

25/05/2012 19:52:54
Gesponsorde koppelingen:
 
Elwin - Fratsloos

Elwin - Fratsloos

09/01/2012 14:43:35
Quote Anchor link
Hier kunnen we geen fatsoenlijk antwoord op geven. Waar komt de XML bijvoorbeeld vandaan?

Op basis van jouw vraag zeg ik: ja dat kan, het is immers gewoon platte tekst waar je iets tussen kan zetten.

Heb je overigens niets aan de attribuut 'data' in de target-tag? Daar staat al een taalcode.
 
Peter Dorn

Peter Dorn

09/01/2012 14:43:55
 
Opolo Webdesign

Opolo Webdesign

09/01/2012 14:46:55
Quote Anchor link
@elwin
De xml is een lokale file.
Verhaal van "data" is dat de eindgebruiker lui is en niet van routine wil veranderen. Dus heb ik werk ;-)

@peter
Heb inmiddels gekeken naar dom en simple xml maar beide bieden niet het gewenste resultaat. Heb je wellicht een voorbeeldje?
 
Opolo Webdesign

Opolo Webdesign

18/01/2012 22:37:09
Quote Anchor link
Voor het nageslacht, dit is een oplossing:

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
20
21
22
23
24
<?PHP
//handle file
$dom=new DOMDocument();
$dom->preserveWhiteSpace=false;
$dom->load($name);
$dom->formatOutput=true;

$usernodes=$dom->getElementsByTagName('target');

foreach($usernodes as $node) {
    //set taalcode
    $taalcode=$taalcodes[$node->getAttribute('data')];

    //insert
    if($taalcode) {
        $before=$node->firstChild;
        $newelem=$dom->createElement('TaalCode', $taalcode);
        $node->insertBefore($newelem, $before);
    }
}


//save
$dom->save($name);
?>
Gewijzigd op 18/01/2012 22:37:43 door Opolo Webdesign
 



Overzicht Reageren

Get Adobe Flash player