Sometimes giving a bad answer inspires someone else to give a better one, so here goes: It seems like the best way to get the contents programatically is using org-dp (https://github.com/tj64/org-dp). I don't see a way in org-element. The data returned will include the property drawer of the heading. It does not include subheadings. I wrote a quick and ugly function to strip out the property drawer (it also has to remove the properties list associated with the section element, hence excluding :begin), and then returns a string. (defun get-contents (data) "DATA is the data returned by (org-dp-contents)" (let ((contents) (exclusions '(property-drawer :begin))) (dolist (element (cdar data)) (unless (memq (car-safe element) exclusions) (push element contents))) (org-element-interpret-data (reverse contents)))) I am skeptical that this is a better way then the alternative you described, but do not know. Hopefully someone else can assist. On Wed, Oct 23, 2019 at 12:10 PM Joost Kremers wrote: > Hi all, > > I was wondering if there's a way to programmatically get the text > of a node in an Org buffer. Basically, I have a buffer that looks > something like this: > > #+BEGIN_SRC org > * Top header > ** Subheader > :PROPERTIES: > :Custom_ID: some_id > :END: > > Text starts here, possibly with additional subheaders > #+END_SRC > > What I would like to extract is the text below "Subheader", but > without the :PROPERTIES: block. > > I've looked at the org-element library, but I haven't been able to > figure out how to use it to extract just the plain text. > > I use the :Custom_ID: property to find the relevant subheading and > I know I can use (org-back-to-heading) to get point to the > Subheader containing the relevant :PROPERTIES: block. Obviously, I > could then narrow the buffer to the subheader, use a text search > to move point past the line containing :END: and then extract the > text from there until (point-max). > > I'm just wondering if this may break in unexpected circumstances > and whether there's a better way. > > TIA > > Joost > > > > -- > Joost Kremers > Life has its moments > >