gpt4 book ai didi

r - 在 R 中生成 XML 文档

转载 作者:行者123 更新时间:2023-12-04 16:28:33 25 4
gpt4 key购买 nike

在我工作的项目中,我需要自动化创建XML文档取决于用户输入。使用用户输入修改xml的部分文档对我来说没问题,但我是新手 xml在 R 中从头开始文档

我想知道是否是 XML可以使用 XML 在 R 中生成类似下面的文档或 xml2包。到目前为止,我已经探索了newXMLdoc , xml_new_documentxml_new_root函数,但我不熟悉创建这样一个 xml 所需的所有语法文件(完成后应保存在本地路径中)

<session>
<modelVersion>1.0.0</modelVersion>
<products>
<product>
<refNo>1</refNo>
<uri>S1A_IW_GRDH_1SDV_20190818T175529_20190818T175554_028627_033D25_22ED.zip</uri>
<productReaderPlugin>class org.esa.s1tbx.io.sentinel1.Sentinel1ProductReaderPlugIn</productReaderPlugin>
</product>
<product>
<refNo>2</refNo>
<uri>S2A_MSIL1C_20190823T061631_N0208_R034_T42TXS_20190823T081730.zip</uri>
<productReaderPlugin>class org.esa.s2tbx.dataio.s2.ortho.plugins.Sentinel2L1CProduct_Multi_UTM42N_ReaderPlugIn</productReaderPlugin>
</product>
</products>
<views/>
</session>

最佳答案

考虑使用上述库(例如 XML)使用 DOM 方法构建 XML。无需连接或插入字符串:

library(XML)

# DATA
df <- data.frame(refNo = c(1, 2),
uri = c('S1A_IW_GRDH_1SDV_20190818T175529_20190818T175554_028627_033D25_22ED.zip',
'S2A_MSIL1C_20190823T061631_N0208_R034_T42TXS_20190823T081730.zip'),
plugin = c('class org.esa.s1tbx.io.sentinel1.Sentinel1ProductReaderPlugIn',
'class org.esa.s2tbx.dataio.s2.ortho.plugins.Sentinel2L1CProduct_Multi_UTM42N_ReaderPlugIn')
)

# CREATE XML FILE
doc = newXMLDoc()
root = newXMLNode("session", doc = doc)

# WRITE XML NODES AND DATA
mvNode = newXMLNode("modelVersion", "1.0.0", parent = root)

for (i in 1:nrow(df)){
prodNode = newXMLNode("products", parent = root)

# APPEND TO PRODUCT NODE
newXMLNode("refNo", df$refNo[i], parent = prodNode)
newXMLNode("uri", df$uri[i], parent = prodNode)
newXMLNode("productReaderPlugin", df$plugin[i], parent = prodNode)
}

vwNode = newXMLNode("views", parent = root)

# OUTPUT XML CONTENT TO CONSOLE
print(doc)

# OUTPUT XML CONTENT TO FILE
saveXML(doc, file="Output.xml")

输出
<?xml version="1.0"?>
<session>
<modelVersion>1.0.0</modelVersion>
<products>
<refNo>1</refNo>
<uri>S1A_IW_GRDH_1SDV_20190818T175529_20190818T175554_028627_033D25_22ED.zip</uri>
<productReaderPlugin>class org.esa.s1tbx.io.sentinel1.Sentinel1ProductReaderPlugIn</productReaderPlugin>
</products>
<products>
<refNo>2</refNo>
<uri>S2A_MSIL1C_20190823T061631_N0208_R034_T42TXS_20190823T081730.zip</uri>
<productReaderPlugin>class org.esa.s2tbx.dataio.s2.ortho.plugins.Sentinel2L1CProduct_Multi_UTM42N_ReaderPlugIn</productReaderPlugin>
</products>
<views/>
</session>

关于r - 在 R 中生成 XML 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57624678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com