Я пытаюсь использовать xpath для извлечения микроданных HTML5 со страницы. По сути, я пытаюсь сказать «найти вложенные узлы с атрибутом itemprop = name, которые не вложены в другой элемент itemscope (на любой глубине)». В следующем примере я пытаюсь найти название продукта (обувь), но мне не нужно название бренда (Nike).
<div itemscope itemtype="http://schema.org/Product>
<div itemscope itemtype="http://schema.org/Brand">
<div itemprop="name">Nike</div> <!-- don't want this -->
</div>
<div itemprop="name">shoes</div> <!-- do want this -->
</div>
Я могу легко найти элемент itemprop = name, используя что-то вроде // * [@ itemprop = name], но это также приведет к появлению названия бренда. Кстати, элементы, показанные в примере, могут быть вложены в другие теги, поэтому я не могу просто сказать, «чей непосредственный родитель не имеет атрибута itemscope». Я считаю, что может быть что-то, относящееся к предкам, которое я могу использовать, но я не знаю хватит про xpath. Любые идеи?
shoes
находится внутриitemscope
, поэтому для пояснения вы хотите, чтобы имена имели не более одногоitemscope
предка, но не имена, у которых более одного? - person Ian Roberts   schedule 14.10.2014itemscope
элемента X извлекать все имена, которые находятся внутри X, но не внутри любого другогоitemscope
? - person Ian Roberts   schedule 14.10.2014