есть ли библиотека, которая может дать мне
XPATH для всех узлов на странице HTML
Да, если эта HTML-страница является правильно сформированным XML-документом .
В зависимости от того, что вы понимаете под "узлом" ...
//*
выделяет все элементы в документе.
/descendant-or-self::node()
выбирает все элементы, текстовые узлы, инструкции по обработке, узлы комментариев и корневой узел /
.
//text()
выделяет все текстовые узлы в документе.
//comment()
выбирает все узлы комментариев в документе.
//processing-instruction()
выбирает все инструкции по обработке в документе.
//@*
выбирает все узлы атрибута в документе.
//namespace::*
выбирает все узлы пространства имен в документе.
Наконец, вы можете объединить любое из приведенных выше выражений, используя оператор объединения (|
).
Таким образом, я считаю, что следующее выражение действительно выбирает «все узлы» любого XML-документа:
/descendant-or-self::node() | //@* | //namespace::*