2010-07-18 5 views
2

J'utilise Python 2.4/2.5, avec libxm2dom. Je peux importer un document HTML et construire le DOM. Existe-t-il un moyen de "rechercher" par programme pour un terme donné, et être capable d'élaborer la fonction XPath pour extraire le href pour le terme? Par exemple, étant donné ce morceau de code HTML du document:Trouvez un élément et renvoyez le XPath en utilisant Python

... 
<a href="dog">bigdog</a> 
... 

Je voudrais avoir une fonction XPath qui trouverait bigdog, et retourner le XPath pour obtenir le lien href.

+1

Si vous souhaitez utiliser libxml2 à partir de Python, vous devriez vraiment utiliser lxml. Il fournit une API beaucoup plus puissante et plus pratique que le DOM classique. – lunaryorn

+0

Veuillez travailler sur des questions claires et concises ... voir mes modifications de cette question. –

Répondre

0

Ce XPATH sélectionnera le @href de l'élément a dont le texte est "bigdog".

//a[text()='bigdog']/@href 
+0

hey mads, merci .. aurait dû être plus clair. Je cherchais vraiment un moyen d'accomplir une regex, et de pouvoir créer un XPath qui leur donnerait alors l'élément basé sur la fonction regex ... quelque chose comme // a [text() = 'regex () ']/@ href –

+0

libxml2dom ne supporte que XPATH 1.0, donc les fonctions XPATH 2.0 comme match() (qui supportent regex) sont sorties. Vous ne savez pas s'il est compatible avec EXSLT. Si c'est le cas, vous pouvez utiliser REGEX dans la fonction exslt: match(). http://www.exslt.org/regexp/functions/match/index.html Apparemment, lxml supporte les extensions EXSLT, donc vous pouvez l'utiliser si nécessaire. –

Questions connexes