Какой Xpath написать, чтобы он не содержал tag

Рейтинг: 1Ответов: 1Опубликовано: 13.02.2023

Припустим, есть такой html:

<tag>
    <notag></notag>
    <href></href>
</tag>
<tag>
    <notag></notag>
    <href></href>
</tag>
<tag>
    <href></href>
</tag>

Мне нужно href у tag, где нет тега notag. Какой Xpath можно написать?

Ответы

▲ 0Принят

(X)HTML должен быть правильно сформирован (well-formed) и включать корневой тег.

XPath предикат [not(notag)] делает то, что вам нужно.

Input (X)HTML

<root>
    <tag>
        <notag></notag>
        <href>1</href>
    </tag>
    <tag>
        <notag></notag>
        <href>2</href>
    </tag>
    <tag>
        <href>3</href>
    </tag>
</root>

XPath

/root/tag[not(notag)]/href