R/xml_path.R

Defines functions xml_path.xml_nodeset xml_path.xml_node xml_path.xml_missing xml_path

Documented in xml_path

#' Retrieve the xpath to a node
#'
#' This is useful when you want to figure out where nodes matching an
#' xpath expression live in a document.
#'
#' @inheritParams xml_name
#' @return A character vector.
#' @export
#' @examples
#' x <- read_xml("<foo><bar><baz /></bar><baz /></foo>")
#' xml_path(xml_find_all(x, ".//baz"))
xml_path <- function(x) {
  UseMethod("xml_path")
}

#' @export
xml_path.xml_missing <- function(x) {
  NA_character_
}

#' @export
xml_path.xml_node <- function(x) {
  .Call(node_path, x$node)
}

#' @export
xml_path.xml_nodeset <- function(x) {
  vapply(x, xml_path, FUN.VALUE = character(1))
}

Try the xml2 package in your browser

Any scripts or data that you put into this service are public.

xml2 documentation built on July 9, 2023, 6:44 p.m.