xml2提取层次结构列表

时间:2020-05-31 23:04:41

标签: r xml markdown nested-lists

我正在解析Markdown文档以获取一些要点,并希望保留该部分的层次结构。考虑以下示例输入文件,

a.md

---
title: "document of interest"
---     

## First section  

- item A1 
- item A2
- item A3 

## Second section  

- item B1 
- item B2
- item B3 

我可以用例如commonmark和xml2如下,

library(commonmark)
library(xml2)
p <- paste(readLines('a.md'), collapse='\n')
xml <- commonmark::markdown_xml(p)
a <- xml2::read_xml(xml)
xml_text(xml_find_all(a,'.//d1:heading'))
xml_text(xml_find_all(a,'.//d1:item'))

但是我不确定将这些项目嵌套在其部分内的好策略,即生成一个嵌套列表,例如

list(list(section = "First section", items = c("item A1", "item A2", "item A3")),
     list(section = "Second section", items = c("item B1", "item B2", "item B3")))

PS:据我所知,XML树没有在每个单独的部分中嵌套内容–它们在同一平面上。如果是这种情况,问题就变成了在出现标题和项目的地方对行号进行计数,并以此方式将项目分配给它们的部分。

0 个答案:

没有答案