Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.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
Parsing 如何优雅地按组织元素解析组织模式_Parsing_Emacs_Org Mode - Fatal编程技术网

Parsing 如何优雅地按组织元素解析组织模式

Parsing 如何优雅地按组织元素解析组织模式,parsing,emacs,org-mode,Parsing,Emacs,Org Mode,org元素是org模式的一个新模块,我认为它很适合解析org文件,不想用匹配字符串的旧方法解析它。但在玩了几个小时后,我不得不承认我没有足够的组织模式经验,所以大师们可以给我一些线索,非常感谢 我的要求很简单,我想得到所有的标题和内容 * headline :PROPERTIES ** subheadline content1 ** subheadline content2 根据@YoungFrog的提示: 获取所有标题: (let ((parsetree (org-element

org元素
org模式
的一个新模块,我认为它很适合解析org文件,不想用匹配字符串的旧方法解析它。但在玩了几个小时后,我不得不承认我没有足够的组织模式经验,所以大师们可以给我一些线索,非常感谢

我的要求很简单,我想得到所有的标题和内容

* headline

:PROPERTIES

** subheadline

content1

** subheadline

content2

根据@YoungFrog的提示:

  • 获取所有标题:

    (let ((parsetree (org-element-parse-buffer 'headline))) 
      (org-element-map parsetree 'headline 
                       (lambda (hl) (org-element-property :title hl)))) 
    
  • 获取所有内容:

    (let ((parsetree (org-element-parse-buffer 'paragraph)))
      (org-element-map parsetree 'paragraph 
                       (lambda (hl) (org-element-interpret-data hl))))
    

实际要求是什么?类似于(let((parsetree(org-element-parse-buffer'headline)))(org-element-map-parsetree'headline(lambda(hl)(org-element-property:title-hl)))的内容可以为所有标题提供标题。谢谢,那么如何获得一个标题的内容呢?我还不完全清楚这个要求。假设您的文档中有代码块,这是内容的一部分吗?桌子呢?也可能你想要的只是一个从组织到文本的导出器。是的,我想分别提取标题、副标题和内容。这意味着fun1()返回所有标题,fun2(标题)返回其子标题行,fun3(子标题行)返回其内容。使用OP的MWE,获取所有内容的代码不适用于Org9.4。你能更新代码吗?