В РИ можно получить желаемые результаты.
library(xml2)
root = read_html("<div><p>abc<br> xyz</p></div>")
elements = xml_find_all(root, "//.")
xml_path(elements)
#> [1] "/" "/html"
#> [3] "/html/body" "/html/body/div"
#> [5] "/html/body/div/p" "/html/body/div/p/text()[1]"
#> [7] "/html/body/div/p/br" "/html/body/div/p/text()[2]"
Требуются узлы
(/ html / body / div / p / text () [1], / html / body / div / p / text () [2]).
В python, когда я использую lxml getpath, я получаю ошибку, потому что некоторые пустые фрагменты текстовых элементов также возвращаются вместе с элементами узла.
root = html.fromstring("<div><p>abc<br> xyz</p></div>")
elements = root.xpath("//.")
xpath_elements = [etree.ElementTree(root).getpath(x) for x in elements]
Но когда я использую использование xpath, заканчивающееся узламиЯ не получу те же результаты, что и при использовании R xml2
root = html.fromstring("<div><p>abc<br> xyz</p></div>")
elements = root.xpath("//*")
xpath_elements = [etree.ElementTree(root).getpath(x) for x in elements]
print(xpath_elements)
#> ['/html', '/html/body', '/html/body/div', '/div/p', '/div/p/br']
. Как я могу получить желаемый результат xpath, который дает библиотека xml2 R.