Monday, November 08, 2010 at 12:04 AM.
system.verbs.builtins.mainResponder.discuss.topicsToXml
on topicsToXml () { local (f = mainresponder.discuss.openfile ()); local (adrmsgs = @[f].discuss.messages); local (xmltext = "", indentlevel = 0); on add (s) { xmltext = xmltext + string.filledString ("\t", indentlevel) + s + "\r"}; add ("<?xml version=\"1.0\"?>"); add ("<topics>"); indentlevel++; local (i, ct = sizeof (adrmsgs^), adrstorage); for i = ct downto 1 { adrstorage = @adrmsgs^ [i]; if adrstorage^.inResponseTo == 0 { add ("<topic>"); indentlevel++; add ("<title>" + adrstorage^.msgnum + "</title>"); add ("<subject>" + adrstorage^.subject + "</subject>"); add ("<postTime>" + adrstorage^.posttime + "</postTime>"); add ("<member>" + adrstorage^.member + "</member>"); add ("</topic>"); indentlevel--}}; add ("</topics>"); indentlevel--; return (xmltext)}; bundle { //test code wp.newtextobject (topicsToXml (), @scratchpad.xxxxx)}
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.