Nothing
list_xml <- function(x) as_list(read_xml(x))
test_that("empty elements become empty lists", {
expect_equal(list_xml("<x></x>"), list(x = list()))
expect_equal(list_xml("<x><y/></x>"), list(x = list(y = list())))
expect_equal(
list_xml("<x><y><z/></y></x>"),
list(x = list(y = list(z = list())))
)
})
test_that("text nodes become character vectors", {
expect_equal(list_xml("<x>a</x>"), list(x = list("a")))
expect_equal(list_xml("<x><y>a</y></x>"), list(x = list(y = list("a"))))
})
test_that("cdata nodes become character vectors", {
expect_equal(list_xml("<x><![CDATA[<y/>]]></x>"), list(x = list("<y/>")))
})
test_that("xml attributes become R attibutes", {
expect_equal(
list_xml("<x a='1' b='2'></x>"),
list(x = structure(list(), a = "1", b = "2"))
)
})
test_that("xml names are preserved when attributes exist", {
expect_equal(
list_xml("<x a='1' b='2'><y>3</y><z>4</z></x>"),
list(x = structure(list(y = list("3"), z = list("4")), a = "1", b = "2"))
)
})
test_that("special attributes are escaped", {
expect_equal(
list_xml("<x a='1' b='2' names='esc'><y>3</y><z>4</z></x>"),
list(
x = structure(
list(y = list("3"), z = list("4")),
a = "1",
b = "2",
.names = "esc"
)
)
)
})
test_that("attributes in child nodes", {
expect_equal(
list_xml("<w aa = '0'><x a='1' b='2' names='esc'><y>3</y><z>4</z></x></w>"),
list(
w = structure(
list(
x = structure(
list(y = list("3"), z = list("4")),
a = "1",
b = "2",
.names = "esc"
)
),
aa = "0"
)
)
)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.