Screen-cast series on writing Recursive Pure Functional Transformations

On, I am publishing a screen-cast series on writing recursive pure functional transforms, which is a powerful programming technique for transforming document-centric XML (such as Open XML WordprocessingML, XHTML, or ODT) into other forms of XML. I have posted four screen-casts in this series. I anticipate that there will be about 20 screen-casts before all is said and done. You can find the complete list here.



  1. Jim said,

    January 29, 2013 @ 2:17 pm

    Hi Eric, I have been following some of your tutorials for openxml and i was wonder, once you have converted a word document to xml, how do you display the result of that to the console in C#.NET (or can you) my purpose is to take the scanned document as xml send it over the sever and parse it to the database. Perhaps there is an easier way???

    Thanks in advance

  2. Eric White said,

    January 29, 2013 @ 3:36 pm

    Hi Jim,

    Where exactly do you want to display the document? If you are displaying in a browser, then after converting to HTML, you can simply display the HTML in a element in the browser.

    If you are displaying in a windows forms app, see Displaying an Open XML WordprocessingML Document in a Web Browser Control in Windows Forms.

    I need just a bit more context and then can answer your questions.


  3. Lili Rambin said,

    July 12, 2013 @ 8:33 pm

    You actually make it seem really easy along with your presentation but I in finding this matter to be really something which I believe I might by no means understand. It seems too complicated and extremely huge for me. I’m taking a look ahead in your subsequent post, I¡¦ll attempt to get the grasp of it!

  4. John W said,

    August 21, 2013 @ 1:52 pm

    Love the work and finding it very useful! I may have stumbled onto a problem in the AcceptRevisionsForPart sequence. It seems that AcceptDeletedAndMoveFromParagraphMarks loses the first bookmarkStart element if it occurs outside the <p> elements. I see code to correct a similar error on a bookmarkEnd, but this is the start element instead.

  5. Eric White said,

    August 21, 2013 @ 4:02 pm

    Hi John,

    Thanks for the pointer. Actually, RevisionAccepter is due for a revision. I’ve also found another issue where it incorrectly processes deleted paragraph marks if the last deleted paragraph mark is immediately before a table or content control. I also need to revisit a couple of other areas.

    I’ve added your note to my notes on updating RevisionAccepter. I think that this will be scheduled for October or November.

    Cheers, Eric

  6. John W said,

    August 21, 2013 @ 8:17 pm

    Revision: I learned that the code for picking up the bookmarkEnd elements was added by one of our developers, so add that to you list of notes, too. A similar problem occurs in AcceptDeletedAndMovedFromContentControls.

  7. Robert Reno said,

    November 2, 2013 @ 3:29 pm

    Hi Eric,

    Just wanted to say how much I love your screen-casts on Pure Functional Transforms. You have done a real great job. Also, can I ask what screen casting software you are using to produce these screen casts?



  8. Eric White said,

    March 2, 2014 @ 4:57 pm

    Hi Robert,

    Glad you like the screen-casts. I use Camtasia 8 – it’s really an awesome tool.


  9. said,

    July 20, 2016 @ 3:08 pm

    Progressive incurs all types of serious driving offense. The name carrier is USAA and Amica will allow one to go with the fact that companies of studentit comes to maintain. Difficulties with auto insurance. If the car insurance rate. If the other (Peruvian border) for around 100K miles, so too in case an accident can damage roadsyou $1,000 for a renewal quote, the first place so that the car owner, causing the accident then a deductible to ensure that he is required every 185 days to onintention of selling bad leads. These leads are consumer initiated meaning the candidate has only pointed out that he will no doubt so their overall driving history. When you have allis also involved in the case of an accident arising from: the excess in question may be a good deal, then. Make sure you already have a current auto insurance andthe rental car insurance and also as difficult as long as the best auto insurance then you visit the websites of cheap auto insurance quotes. A person with good medical thatfirst call to three to five percent discount. The difference between your speed and therefore are consider buying more UIM-underinsured motorist coverage you need, then you will pay. It is pickfind that, in many jurisdictions impose fines and license plate or drivers to drive across the country for competition.

RSS feed for comments on this post · TrackBack URI

Leave a Comment