Elements par Id dans un XHTML

Le
Gloops
Bonjour tout le monde,

Afin d'établir un rapprochement entre les éléments de deux document=
s
portant les mêmes attributs id, je parcours le premier dans un
XmlDataDocument, et je cherche les éléments dans le deuxième par
GetElementById.

Je suis tombé sur un os en ce sens que XmlDataDocument ne connaît pas=

GetElementById, et que mes diverses tentatives de cast se sont soldées =

par un échec.

Comme je n'arrivais pas à déclarer un WebBrowser par code je l'ai mis=

d'entrée de jeu sur le formulaire, mais je me suis fait taper sur les
doigts lorsque j'ai écrit

el2 = (System.Xml.XmlNode)
WebBrowser1.Document.GetElementById(el.Attributes["id"].Value);

CS0030 Cannot convert type 'System.Windows.Forms.HtmlElement' to
'System.Xml.XmlNode'

Bon, alors si je veux afficher côte à côte les textes des deux
documents, rapprochés par leurs id, faut-il vraiment que j'ouvre deux
WebBrowsers, et que j'oublie les XmlDataDocument ?

Au début j'avais l'impression qu'éviter le webbrowser pouvait donner =

quelque chose de moins lourd, mais peut-être me suis-je trompé.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Vivien Parlat
Le #12140541
On 24 fév, 13:18, Gloops
Bonjour tout le monde,

Afin d'établir un rapprochement entre les éléments de deux documents
portant les mêmes attributs id, je parcours le premier dans un
XmlDataDocument, et je cherche les éléments dans le deuxième par
GetElementById.

Je suis tombé sur un os en ce sens que XmlDataDocument ne connaît pas
GetElementById, et que mes diverses tentatives de cast se sont soldées
par un échec.

Comme je n'arrivais pas à déclarer un WebBrowser par code je l'ai mis
d'entrée de jeu sur le formulaire, mais je me suis fait taper sur les
doigts lorsque j'ai écrit

el2 = (System.Xml.XmlNode)
WebBrowser1.Document.GetElementById(el.Attributes["id"].Value);

CS0030 Cannot convert type 'System.Windows.Forms.HtmlElement' to
'System.Xml.XmlNode'

Bon, alors si je veux afficher côte à côte les textes des deux
documents, rapprochés par leurs id, faut-il vraiment que j'ouvre deux
WebBrowsers, et que j'oublie les XmlDataDocument ?

Au début j'avais l'impression qu'éviter le webbrowser pouvait donner
quelque chose de moins lourd, mais peut-être me suis-je trompé.



Bonjour,

Tu peux utiliser du html comme xml via le Html Agility pack par
exemple (www.codeplex.com/htmlagilitypack) ou sgmlReader (http://
wiki.opengarden.org/Community/SgmlReader_1.7.2).

Ensuite pour ce qui est exploration, pourquoi ne pas regarder du côté
de Linq si jamais le GetElementByID n'existe pas... De plus le type
HtmlDocument contient un GetElementByID en Winforms...

Cordialement...
Gloops
Le #12140531
Vivien Parlat a écrit, le 26/02/2008 11:43 :
Bonjour,

Tu peux utiliser du html comme xml via le Html Agility pack par
exemple (www.codeplex.com/htmlagilitypack) ou sgmlReader (http://
wiki.opengarden.org/Community/SgmlReader_1.7.2).

Ensuite pour ce qui est exploration, pourquoi ne pas regarder du côté
de Linq si jamais le GetElementByID n'existe pas...



Ah.
Plein de pistes à explorer, en somme.
Je crois que je vais aller au bout de la première, et ensuite creuser
tout ça.
Merci beaucoup.


De plus le type
HtmlDocument contient un GetElementByID en Winforms...



Avec toutefois un bémol :

Erreur CS0143, The type 'System.Windows.Forms.HtmlDocument' has no
constructors defined

lors de la déclaration
HtmlDocument doc2 = new HtmlDocument();

mais ce n'était peut-être pas comme ça qu'il fallait le déclarer ?
Utiliser une interface, peut-être ?
Publicité
Poster une réponse
Anonyme