2013-06-20 28 views
8

org-elementorg-mode的一個新模塊,我認爲這對解析org文件很好,不想用舊的方式用match-string解析它。但在玩了幾個小時之後,我不得不承認我沒有足夠的組織經驗,所以大師們可以給我一些線索,非常感謝!如何用org-element優雅地解析org-mode

我的要求很簡單,我想得到所有的標題和內容。

* headline 

:PROPERTIES 

** subheadline 

content1 

** subheadline 

content2 
+4

什麼牛逼他的要求實際上? (org-element-parse-buffer'headline))) (org-element-map parsetree'headline(lambda(hl) (org-element-property:title hl)))(類似於 ) 會爲您獲得所有頭條的標題。 – YoungFrog

+0

謝謝,那麼如何獲得一個標題的內容? – netawater

+2

這個要求對我來說還不完全清楚。假設您的文檔中有代碼塊,是否意味着成爲內容的一部分?表格怎麼樣?它也可能是你想要的只是一個組織到文本的出口商。 – YoungFrog

回答

7

基於@ 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))))