2012-01-04 6 views
5

J'essaie de sélectionner plusieurs noeuds via htmlagilitypack mais cela échoue. Quelle est la syntaxe correcte? Donc ce que j'essaie est de collecter des nœuds et des nœuds li dans l'élément div de breadcrumbs. Merci.Xpath sélection de noeuds - comment sélectionner 2 éléments différents - htmlagilitypack

string srxPathOfCategory = "//div[@class='breadcrumbs']//li or //div[@class='breadcrumbs']//a"; 
var selectedNodes = myDoc.DocumentNode.SelectNodes(srxPathOfCategory); 

XPath, C#, htmlagilitypack

Solution

string srxPathOfCategory = "//div[@class='breadcrumbs']//li[@class='product'] | //div[@class='breadcrumbs']//a"; 
+1

s'il vous plaît poster échantillon de html que vous essayez de sélectionner. Le html exact, pas quelque chose que vous retirez de votre tête que vous pensez être "assez proche". – x0n

+0

En fait, ce n'est pas nécessaire. Si vous étiez suffisamment expérimenté avec Xpath, vous sauriez quoi utiliser à la place du mot "ou". J'ai aussi trouvé le message édité par la solution. – MonsterMMORPG

+1

@MonsterMMORPG: Mettez-le comme une réponse, et marquez-le comme tel :) –

Répondre

11

Solution est

string srxPathOfCategory = "//div[@class='breadcrumbs']//li[@class='product'] | //div[@class='breadcrumbs']//a"; 

Donc, pour "ou" vous devez utiliser "|"

+0

Cette déclaration traitera-t-elle aussi OU comme des nœuds «supplémentaires»? c'est-à-dire si je veux obtenir tr [1]. [2], et tr [dernier()]. Est-ce que le '|' fonctionnerait, y a-t-il un autre paramètre nécessaire, ou doivent-ils tous être séparés? – Austin

+0

superbe réponse !!! –

Questions connexes