xml tag toevoegen
Ik heb de volgende xml (snippet):
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?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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>
<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?
Gesponsorde koppelingen:
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.
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.
@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?
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?
Voor het nageslacht, dit is een oplossing:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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);
?>
//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



