Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R-Get XML节点_R_Excel_Xml_Xmlnode - Fatal编程技术网

R-Get XML节点

R-Get XML节点,r,excel,xml,xmlnode,R,Excel,Xml,Xmlnode,我有一个关于XML节点的问题 我想替换Excel文件中的值和公式,所以首先,我使用file.rename()将其更改为zip文件,然后,我在zip文件的XML文件中工作。 您可以在/xl/worksheets/sheet1.XML中找到XML,要替换,我写代码行: library(XML) ### Change excel to zip data_path <- "Untitled 1.xlsx" file.rename(data_path, "Untit

我有一个关于XML节点的问题

我想替换Excel文件中的值和公式,所以首先,我使用
file.rename()
将其更改为zip文件,然后,我在zip文件的XML文件中工作。 您可以在
/xl/worksheets/sheet1.XML中找到XML,要替换,我写代码行:

library(XML)

### Change excel to zip
data_path <- "Untitled 1.xlsx"

file.rename(data_path, "Untitled 1.zip")

dir.create("Untitled 1")
utils::unzip("Untitled 1.zip", exdir = "Untitled 1")

### Read XML file
doc <- xmlTreeParse("Untitled 1/xl/worksheets/sheet1.xml", useInternal = TRUE)

#### Select the nodes we want to update
nodes <- getNodeSet(doc, "/worksheet")
nodes <- getNodeSet(doc, "/worksheet/sheetData")

# > list()
# > list()

库(XML)
###将excel更改为zip

数据路径您的文档在根“工作表”节点中有一个默认名称空间。
XML
库需要命名默认名称空间。你可以这样做

# name the namespaces
ns <- c(ns="http://schemas.openxmlformats.org/spreadsheetml/2006/main",
        r="http://schemas.openxmlformats.org/officeDocument/2006/relationships")

# use the ns= namespace in the xpath
getNodeSet(doc, "/ns:worksheet", namespaces = ns)
getNodeSet(doc, "/ns:worksheet/ns:sheetData", namespaces = ns)
library(xml2)
doc <- xml_ns_strip(read_xml("sheet1.xml"))
xml_find_all(doc, "/worksheet")
xml_find_all(doc, "/worksheet/sheetData")