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

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

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

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


Ответы (1 шт):

Автор решения: Yitzhak Khabinsky

(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
→ Ссылка