xml2:如何将 xml 对象转换为字符串(在内存中,作为 R 对象)

xml2: How to convert an xml object to string (in memory, as R object)

我有以下情况:

将可以在内存中完成的事情写入磁盘是非常低效的。

我是否遗漏了 xml2 包中的明显功能?

xml2 包为其对象 类 提供了 as.character() 方法。因此,使用 built-in 示例,您可以简单地执行以下操作:

library(xml2)
dat <- read_xml(xml2_example("order-doc.xml"))

as.character(dat)
[1] "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<purchaseOrder xmlns=\"http://tempuri.org/po.xsd\" orderDate=\"1999-10-20\">\n  <shipTo country=\"US\">\n    <name>Alice Smith</name>\n    <street>123 Maple Street</street>\n    <city>Mill Valley</city>\n    <state>CA</state>\n    <zip>90952</zip>\n  </shipTo>\n  <billTo country=\"US\">\n    <name>Robert Smith</name>\n    <street>8 Oak Avenue</street>\n    <city>Old Town</city>\n    <state>PA</state>\n    <zip>95819</zip>\n  </billTo>\n  <comment>Hurry, my lawn is going wild!</comment>\n  <items>\n    <item partNum=\"872-AA\">\n      <productName>Lawnmower</productName>\n      <quantity>1</quantity>\n      <USPrice>148.95</USPrice>\n      <comment>Confirm this is electric</comment>\n    </item>\n    <item partNum=\"926-AA\">\n      <productName>Baby Monitor</productName>\n      <quantity>1</quantity>\n      <USPrice>39.98</USPrice>\n      <shipDate>1999-05-21</shipDate>\n    </item>\n  </items>\n</purchaseOrder>\n"

另请注意,因为默认的 toString() 方法首先强制转换为字符,您也可以使用它。

identical(toString(dat), as.character(dat))
[1] TRUE