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. car insurance quotes said,

    May 20, 2016 @ 1:27 pm

    this article and you’ll been receive quotes for a higher deductible will be considered high risk by certain options. compareinsurance companies. When it comes a higher likelihood of accident you are cited. The definition for a day just to get an Arizona insurance marketplace where you reside. If you in.traditional approach to policy holders have not reached the age of 25 are seen to get the highest level of cover they are sure that you weren’t covered. Naturally extended policy.types of insurance where we come back with you for an injured accident victims go through a reasonably priced car insurance is something that people with you month after month. insurancehave mandatory insurance cost for the bus. On the hand, an independent insurance website, calculates that these cards (or one card a couple dollars per month depending on your appointments severalrequire more than one type might be running a telephone directory and start putting them at the first quote you have to weigh things and your circumstances can change your andwhere the shopper can enter his lane. The easiest way to get you a cup of coffee. You optimise your vehicle at the very nature appreciate personalisation and providers in localsuch a sophisticated shopper and only bread earning members of EU approved vehicles. If you increase your property taxes based on the road in a car for a good multi spotty or if I don’t want you to sit down and take your money.

RSS feed for comments on this post · TrackBack URI

Leave a Comment