Bonjour,

Je cherche à construire un objet HTML::Element à partir d'une chaine du style :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
"<div id='para123'>"
# ou "<div id='para123'></div>"
Seulement il n'y a pas de constructeur prenant cette simple chaine. Je dois donc soit faire:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
$elt    = HTML::Element->new('div', 'id' => 'para123');
soit:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
$elt = HTML::Element->new_from_lol(
['div', {'id' => "para123"}]
);
Pourtant avec HTML::Treebuilder, on a la possibilité de donner une telle chaine au constructeur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
$elt = HTML::TreeBuilder->new_from_content('<div id="para123">');
Seulement l'objet construit par HTML::TreeBuilder ressemble à ceci, ce qui ne m'arrange pas:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<html>
  <head>
  </head>
  <body>
    <div id="para123">
    </div>
  </body>
</html>
Sauriez-vous comment construire un objet Element à partir de cette simple chaine ? Cela m'est nécessaire car je stocke ces chaines dans une base de données. La solution la moins contraignante pour l'instant serait de les stocker dans ma base de données avec la syntaxe attendue par new_from_lol, mais cela ne m'arrange pas, ou alors de faire une conversion de la syntaxe html à la syntaxe en crochets...

Merci de votre aide...