Bonsoir tout le monde,
Je vous expose mon problème. Je cherche à remplacer tous les 60 ans qui se trouvent dans les balises <p> de mon fichier XML en 150 ans. J'arrive à trouver les valeurs qui se trouvent dans la balise <p> et maintenant je voudrais les remplacer. Pour l'instant j'en suis là au bout de plusieurs essais d'abord avec SimpleXml et maintenant avec DOM qui me parait plus pratique :
1) Charger un fichier XML (OK)
2) Rechercher toutes les balises <p> (OK)
3) Modifier certaines de ces balises (NOK)
4) Réécrire le fichier XML comme il était au début en tenant compte des balises <p> modifiées. (NOK)
Voici mon fichier XML simplifié :
Et voici le code que j'ai pour l'instant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105 <c id="tt1-7" level="series"> <did> <unittitle type="titre">niveau de titre 1</unittitle> </did> <c id="tt2-5" level="subseries"> <did> <unittitle type="titre">Niveau de titre 2</unittitle> </did> <c id="de-40" level="file"> <did> <unitid>40</unitid> <unittitle>Intitulé</unittitle> <unitdate normal="1940/1946">1940-1946</unitdate> </did> </c> <c id="de-13" level="file"> <did> <unitid>13</unitid> <unittitle>Intitulé</unittitle> <unitdate normal="1955/1956">1955-1956</unitdate> </did> <accessrestrict> <accessrestrict type="delai"> <head>Délai</head> <p>150 ans</p> </accessrestrict> <accessrestrict type="com"> <head>communication</head> <p>2107</p> </accessrestrict> </accessrestrict> </c> </c> </c> <c id="tt1-7" level="series"> <did> <unittitle type="titre">niveau de titre 1</unittitle> </did> <c id="tt2-5" level="subseries"> <did> <unittitle type="titre">Niveau de titre 2</unittitle> </did> <c id="tt2-5" level="subseries"> <did> <unittitle type="titre">Niveau de titre 3</unittitle> </did> <c id="de-14" level="file"> <did> <unitid>14</unitid> <unittitle>Intitulé</unittitle> <unitdate normal="1955/1956">1955-1956</unitdate> </did> <accessrestrict> <accessrestrict type="delai"> <head>Délai</head> <p>150 ans</p> </accessrestrict> <accessrestrict type="com"> <head>communication</head> <p>2107</p> </accessrestrict> </accessrestrict> </c> </c> </c> </c>
J'ai pensé à utiliser set_content mais sans succès. Est-ce quelqu'un aurait une idée de la façon de procéder svp ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <?php $dom = new DomDocument; $dom->load("test.xml"); $listeP = $dom->getElementsByTagName('p'); foreach($listeP as $p) echo $p->firstChild->nodeValue . "<br />"; echo "---<br />"; //$chaine_XML =??? ; //Enregistrement dans le fichier $id_fichier = fopen('nouveauFichier.xml', "w"); rewind($id_fichier); fwrite($id_fichier, $chaine_XML); fclose($id_fichier); ?>
Merci beaucoup pour votre aide.
Partager