xml tag toevoegen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Veur Heur

Veur Heur

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

08/05/2021 06:39:27
 
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
 
Veur Heur

Veur Heur

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?
 
Veur Heur

Veur Heur

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 Veur Heur
 



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.