list_to_xml_string
is fast and efficient way to convert a specific list to an xml string.
The preferred interface is to use xml_fragment()
and xml_doc()
to create xml fragments.
Details
This function is the working horse for turning xml_fragment()
, xml_doc()
and list
object into character
xml strings and xml2::xml_document
objects.
The input list format is identical to the format returned by xml2::as_list()
function,
but much faster in generating an xml string from it. It writes the xml directly to a string buffer.
This function allows for easy conversion of R data structures
into xml format by creating the list structures in R and then converting them to xml.
The function can be used in tandem with xml2::as_list()
to convert R data structures.
See also
Other xml2:
as_xml_nodeset()
,
list_as_xml_document()
Examples
data <-
list(
study = list(
person = list(
name = "John Doe",
age = "30"
),
person = list(
name = "Jane Doe",
age = "25"
)
)
)
list_as_xml_string(data)
#> [1] "<study>\n <person>\n <name>John Doe</name>\n <age>30</age>\n </person>\n <person>\n <name>Jane Doe</name>\n <age>25</age>\n </person>\n</study>"
if (require("xml2")){
list_as_xml_document(data)
}
#> {xml_document}
#> <study>
#> [1] <person>\n <name>John Doe</name>\n <age>30</age>\n</person>
#> [2] <person>\n <name>Jane Doe</name>\n <age>25</age>\n</person>
#note the xml_fragment function is more powerful to create lists
data <- xml_doc("study", id = "1") /
frag(
person = frag(
name = "John Doe",
age = "30"
),
person = frag(
name = "Jane Doe",
age = "25"
),
"This is a text node"
)
list_as_xml_string(data)
#> [1] "<study id=\"1\">\n <person>\n <name>John Doe</name>\n <age>30</age>\n </person>\n <person>\n <name>Jane Doe</name>\n <age>25</age>\n </person>This is a text node\n</study>"