View source: R/xml_namespaces.R
xml_ns | R Documentation |
xml_ns
extracts all namespaces from a document, matching each
unique namespace url with the prefix it was first associated with. Default
namespaces are named d1
, d2
etc. Use xml_ns_rename
to change the prefixes. Once you have a namespace object, you can pass it to
other functions to work with fully qualified names instead of local names.
xml_ns(x)
xml_ns_rename(old, ...)
x |
A document, node, or node set. |
old , ... |
An existing xml_namespace object followed by name-value (old prefix-new prefix) pairs to replace. |
A character vector with class xml_namespace
so the
default display is a little nicer.
x <- read_xml('
<root>
<doc1 xmlns = "http://foo.com"><baz /></doc1>
<doc2 xmlns = "http://bar.com"><baz /></doc2>
</root>
')
xml_ns(x)
# When there are default namespaces, it's a good idea to rename
# them to give informative names:
ns <- xml_ns_rename(xml_ns(x), d1 = "foo", d2 = "bar")
ns
# Now we can pass ns to other xml function to use fully qualified names
baz <- xml_children(xml_children(x))
xml_name(baz)
xml_name(baz, ns)
xml_find_all(x, "//baz")
xml_find_all(x, "//foo:baz", ns)
str(as_list(x))
str(as_list(x, ns))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.