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>"