2012-01-04 3 views
5

Я пытаюсь это выбрать несколько узлов через htmlagilitypack, но это не удается. Каков правильный синтаксис? Так что я пытаюсь собрать узлы и лиги внутри элемента div палитры. Спасибо.Выбор узла Xpath - как выбрать 2 разных элемента - htmlagilitypack

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

XPath, C#, htmlagilitypack

Решение

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

пожалуйста пост образец html, который вы пытаетесь выбрать. Точный html, а не то, что вы выталкиваете из головы, что, по вашему мнению, «достаточно близко». – x0n

+0

На самом деле это не обязательно. Если бы вы были достаточно опытны с Xpath, вы бы знали, что нужно использовать вместо слова «или». Также я нашел отредактированное сообщение. – MonsterMMORPG

+1

@MonsterMMORPG: Положите это как ответ и отметьте его как таковой :) –

ответ

11

Решение является

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

Так что для "или" Вы должны использовать "|"

+0

Будет ли это утверждение рассматривать также как «дополнительные» узлы? т. е. если я хочу получить tr [1]. [2] и tr [last()]. Будет ли '|' работать, нужен ли еще один параметр, или все они должны быть отдельными. – Austin

+0

превосходный ответ !!! –