xpath извлекает данные только для первого уровня

0

Вот мой 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-уровня первого уровня

Теги:
xpath

1 ответ

1
Лучший ответ

Это действительно зависит от того, что вы пытаетесь схватить. Если его только теги p под данным div вы можете просто использовать:

//div[@id="articleBody"]/p

Учитывая, что вы используете атрибут @id, на самом деле должен быть только один div с этим идентификатором, а это означает, что он просто захватит любые дочерние элементы p этого div.

Когда вы используете обозначение x//y между двумя узлами, он захватывает все разрешенные y узлы от данного узла x. Вам нужны только прямые дети, поэтому используйте x/y.

  • 0
    Я хочу, чтобы исключить теги p которые находятся во втором div. IE мне нужен запрос, который выбирает только те теги p которые находятся на первом уровне.
  • 0
    @jkushner Вот что делает этот Xpath.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню