Вот мой HTML:
<html>
<body>
<div id="articleBody">
<p>text</p>
<p>text2</p>
<div>
<p>text3</p>
<p>text4</p>
</div>
</div>
</body>
</html>
Вот мой xpathL
//div[@id="articleBody"]//p
Это прекрасно работает, однако я не хочу, чтобы во втором div были p tags
.
Как это сделать? Кроме того, я не хочу, чтобы он ограничивался только исключаемыми элементами div
.
То, что я действительно ищу, - это запрашивать и возвращать только теги p-уровня первого уровня
Это действительно зависит от того, что вы пытаетесь схватить. Если его только теги p
под данным div
вы можете просто использовать:
//div[@id="articleBody"]/p
Учитывая, что вы используете атрибут @id
, на самом деле должен быть только один div
с этим идентификатором, а это означает, что он просто захватит любые дочерние элементы p
этого div
.
Когда вы используете обозначение x//y
между двумя узлами, он захватывает все разрешенные y
узлы от данного узла x
. Вам нужны только прямые дети, поэтому используйте x/y
.
p
которые находятся во втором div. IE мне нужен запрос, который выбирает только те тегиp
которые находятся на первом уровне.