Bonjour,

J'essaye de fusionner deux documents html en un seul mais un des deux documents refuse obstinément d'avoir des noeuds enfants.

Voici comment je charge le second document :

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
		// chargement des vues
		public function ProcessView()
		{
			// nombre de vues
			$items = $this->HTMLDoc->getElementsByTagName("view");
			$itemcount = $items->length;
 
			for($i = 0; $i < $itemcount; $i++)
			{
				$item = $items->item($i);
 
				$parent = $item->parentNode;
 
				// second document html
				$name = $item->getAttribute("name");
				$filename = $name . '.view';
				$filepath = 'nodes/' . get_class($this)  . '/views/' . $filename;
 
				if(file_exists($filepath))
				{
					$view = new DOMDocument;
					if($view->loadHTMLFile($filepath))
					{
						$bodies = $view->getElementsByTagName("body");
 
						$boydcount = $bodies->length;
 
						for($j = 0; $j < $boydcount; $j++)
						{
							$body = $bodies->item($j);
 
							// acun enfant trouvé !
							if($body->hasChildNodes)
							{
								foreach($body->childNodes as $child)
								{
									$clone = $view->importNode($child, true);
									$parent->appendChild($clone);
								}
							}
						}
					}
				}
				else echo "file not found @ " . $filepath . "<br>";
			}
		}
et voici le second document html :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" 
"http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div>head<div>lksdfh</div></div>
</body>
</html>
On voit bien que dans ce document la balise body (trouvée dans le premier code) possède des div enfants, mais le nombre d'enfant trouvé est toujours égal à 0...