1

过去几天我一直在搜索,我看到在 XPath v2 中您可以使用“except”运算符,但无法弄清楚 xml2 如何处理这个问题。

这个链接是我想要做的,但这是特定于 XPath 的,我正在尝试像在这个 SO answer 中那样对节点进行全面排除。

例如,我的测试文档是.docx我解压缩并阅读的。它有正文和表格。我想阅读所有正文,除了表格中的任何内容。我可以阅读两者,但我不知道如何排除所有w:tbl. 任何notexcept运算符似乎都不起作用。

xml_find_all它刮掉这些节点内的任何东西,无一例外。

bodytext <- xml2::xml_find_all(doc, "//w:p")
tabletext <- xml2::xml_find_all(doc, "//w:tbl")
4

1 回答 1

1

在这里,您正在查询所有现有w:pw:tbl包含以下实例的实例w:p- 以下仅选择位于正文中的段落:

xml2::xml_find_all(doc, "//w:body/w:p")

请注意,要探索 docx 的内容,您可以使用officer::docx_summary(officer::read_docx('/path/to/document.docx'))它将返回一个带有内容、索引等的 data.frame,如下所示。

  doc_index content_type style_name             text level num_id
1         1    paragraph       <NA>                     NA     NA
2         2    paragraph  heading 1 Table of content    NA     NA
3         3    paragraph       <NA>                     NA     NA
4         4    paragraph  heading 2     dataset iris    NA     NA
于 2018-02-15T18:02:07.887 回答