Как найти xpath, связанный с заданным именем атрибута в пакете xml2 R

Я использую пакет R xml2 для управления файлом xml. Я знаю имя атрибута и хочу найти к нему xpath.

Я знаю, что могу найти в XML-документе заданное имя узла и вернуть связанный xpath. Например, в приведенном ниже коде я ищу имя узла CHILD_NODE и возвращаю xpath.

library(xml2)
library(dplyr)

# Make example data
dat <- read_xml(
  "<PARENT_NODE>
    <CHILD_NODE attr_name='a'>
    </CHILD_NODE>
  </PARENT_NODE>"  
)

# Find xpath to CHILD_NODE:
xpath = dat %>% 
  xml_find_all('//CHILD_NODE') %>% 
  xml_path()
# "/PARENT_NODE/CHILD_NODE"

Как я могу найти xpath, если вместо этого укажу имя атрибута? Например. в приведенном выше примере я хотел бы найти атрибут attr_name и вернуть xpath (/PARENT_NODE/CHILD_NODE)?


person jruf003    schedule 08.07.2021    source источник


Ответы (1)


Правильный xpath для этого

dat %>% 
  xml_find_all('//*[@attr_name]') %>% 
  xml_path()

* ищет все узлы, а @ позволяет вам указать атрибут, который вы хотите штрафовать.

person MrFlick    schedule 08.07.2021
comment
Отлично, еще раз спасибо, MrFlick! - person jruf003; 08.07.2021