Bonjour,

NodeValue fourni l'ensemble d'un noeud sur une ligne
Comment réduire les champs de cette ligne quand il y en a plusieurs ?

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
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<repertoire>
    <sport type="jo">
	<even>
		<debut>2018-02-09</debut>
		<fin>2018-02-25</fin>
		<adresse>PyeongChang-2018</adresse>
	</even>
	<even>
		<debut>2018-02-11</debut>
		<fin>2018-02-24</fin>
		<adresse>PyeongChang-SkiAlpin</adresse>
	</even>
	<even>
		<debut>2018-02-10</debut>
		<fin>2018-02-23</fin>
		<adresse>PyeongChang-Biathlon</adresse>
	</even>
	<even>
		<debut>2018-02-10</debut>
		<fin>2018-02-25</fin>
		<adresse>PyeongChang-SkiDeFond</adresse>
	</even>
    </sport>
    <sport type="formule">
	<even>
		<debut>25/03/2018</debut>
		<fin>2018-03-25</fin>
		<adresse>GP-Australie</adresse>
	</even>
    </sport>
 
</repertoire>
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
function flux($even){
	print('-------------------------<br>');
	foreach ($even as $product)
	{
		print($product->nodeValue.'<br>');
	}
}
 
$doc = new DOMDocument;
$doc->load('jo.xml');
$xpath = new DOMXPath($doc);
 
$f1=$xpath->query("/repertoire/sport[@type='formule']/even");
flux($f1);
$f1=$xpath->query("/repertoire/sport[@type='jo']/even");
flux($f1);
Cela donne :
-------------------------
25/03/2018 2018-03-25 GP-Australie
-------------------------
2018-02-09 2018-02-25 PyeongChang-2018
2018-02-11 2018-02-24 PyeongChang-SkiAlpin
2018-02-10 2018-02-23 PyeongChang-Biathlon
2018-02-10 2018-02-25 PyeongChang-SkiDeFond


Le but est d'obtenir ceci :

-------------------------
25/03/2018 : GP-Australie
-------------------------
2018-02-09 : PyeongChang-2018
2018-02-11 : PyeongChang-SkiAlpin
2018-02-10 : PyeongChang-Biathlon
2018-02-10 : PyeongChang-SkiDeFond