Буквально, «все текстовые узлы, кроме тех, которые находятся под h2 id = sec2 и h2 id = sec3»:
//text()[not(ancestor::h2[@id='sec2' or @id='sec3'])]
Однако я подозреваю, что вы действительно этого не хотите, потому чтопотеря структуры <span>
и <p>
.Было бы правильно сделать вывод, что вы хотите выбрать все дочерние элементы содержимого <div>
, кроме <h2>
с идентификаторами sec2 и sec3?Если это так,
/div/div[@id = 'content']/*[not(self::h2 and (@id = 'sec2' or @id = 'sec3'))]
Но вы также должны знать, что текстовое содержимое элемента <h2>
является просто заголовком раздела, а невесь текст раздела.Так что, если поместить div и p внутри h2, то вы не используете его так, как оно задумано.