修改xml_document in officer in R
Modify xml_document in officer in R
我有一个 rdocx
,我想在 xml 代码中操作一些东西。那是我的文档:
library(officer)
doc <- read_docx() %>%
body_add_par("centered text", style = "centered") %>%
slip_in_seqfield("STYLEREF 1 \s") %>%
slip_in_text("\u2011") %>%
slip_in_seqfield(sprintf("SEQ %s \* ARABIC \s 1", "Table")) %>%
slip_in_text(str_c(": ", "My Caption")) %>%
body_bookmark("my_bookmark")
使用 doc$doc_obj$get()
我可以使用 类 xml_document
和 xml_node
获得 xml 代码。现在我想替换一些代码,详细地说我希望带有 w:bookmarkEnd
的部分稍后出现,以便书签部分变大。我怎样才能做到这一点?如果我能用 str_replace
实现这一点,那就太棒了。
您可以使用 run_bookmark()
,如下例所示(手册未说明支持列表,我会尽快添加该信息):
library(officer)
bkm <- run_bookmark(
bkm = "test",
list(
run_word_field(field = "SEQ tab \* ARABIC \s"),
ftext(" Table", prop = fp_text_lite(color = "red"))
)
)
doc <- read_docx()
doc <- body_add_fpar(
x = doc,
value = fpar(bkm)
)
# how to make a reference to the bkm
doc <- body_add_fpar(
x = doc,
value = fpar(run_reference("test"))
)
print(doc, "zz.docx")
我有一个 rdocx
,我想在 xml 代码中操作一些东西。那是我的文档:
library(officer)
doc <- read_docx() %>%
body_add_par("centered text", style = "centered") %>%
slip_in_seqfield("STYLEREF 1 \s") %>%
slip_in_text("\u2011") %>%
slip_in_seqfield(sprintf("SEQ %s \* ARABIC \s 1", "Table")) %>%
slip_in_text(str_c(": ", "My Caption")) %>%
body_bookmark("my_bookmark")
使用 doc$doc_obj$get()
我可以使用 类 xml_document
和 xml_node
获得 xml 代码。现在我想替换一些代码,详细地说我希望带有 w:bookmarkEnd
的部分稍后出现,以便书签部分变大。我怎样才能做到这一点?如果我能用 str_replace
实现这一点,那就太棒了。
您可以使用 run_bookmark()
,如下例所示(手册未说明支持列表,我会尽快添加该信息):
library(officer)
bkm <- run_bookmark(
bkm = "test",
list(
run_word_field(field = "SEQ tab \* ARABIC \s"),
ftext(" Table", prop = fp_text_lite(color = "red"))
)
)
doc <- read_docx()
doc <- body_add_fpar(
x = doc,
value = fpar(bkm)
)
# how to make a reference to the bkm
doc <- body_add_fpar(
x = doc,
value = fpar(run_reference("test"))
)
print(doc, "zz.docx")