Python & XML

Python & XML, by Christopher A. Jones and Fred L. Drake, Jr., O'Reilly, 2002 360 pages.

Python & XML is an advanced book, covering XML and web programming. The reader needs to bring a good understanding of Python, but  does not need to know much about XML or web programming before opening the book. For such a reader, the book is well written, thorough, and well worth the price of the book ($39.95).

In my case, my background in Python was sufficient, even though I am merely a duffer of two year's experience. My previous knowledge of XMl was exactly zero, and I have no delusions of becoming an expert; in fact, my interests and time constraints are such that I do not expect XML to play a major role in my programming any time soon. Still, even for such a reader as myself, the book was a valuable read. I come away knowing a lot  more about XML, it's usefulness, and how Python can be used to manipulate it. And even though this knowledge, in my case, is merely background knowledge, I am glad to have it and I think it will enhance my enjoyment of Python programming over the next few years.

I particularly appreciated that the book gives a rather complete and well written treatise on XML itself, before applying Python to it. In my case this was sorely needed. For a Pythonista, this book is as good an introduction to the subject of XML as I can imagine. For this purpose, the three chapters, "XML Fundamentals", "The Simple API for XML", and "The Document Object Model" were especially appreciated. I believe these chapters are as good a general introduction to XML as one is likely to find, even in a book dedicated to XML alone, much less Python and XML.

The more detailed and specific chapters covering web programming using Python and XML were more difficult for me to master. I would classify them as advanced and I think advanced Python programmers will find them absorbing and challenging. In my case, they gave me sufficient background to better understand what is going on in exciting areas of distributed programming and web services using SOAP and XML-RPC. To me , this is greatly valued; even though I am not going to be able to go out and write leading edge web services any time soon!

XSLT, Extensible Stylesheet Language Transformations, is a notably good chapter that shows how to convert XML to HTML using Python. This leads into interesting application possibilities that are briefly explored using CGI.

It was a pleasant surprise to me how much of the book was devoted to web programming. The final three chapters, "Python Internet API's", "Python, Web Services and SOAP", and "Python and Distributed Systems Design" were particularly interesting. The material coved in these chapters will be useful to anyone doing web programming using Python.

For any Python programmer, this book will be interesting and will give sufficient background in XML and web programming to enhance appreciation and understanding of these hot topics. For a moderately proficient Pythonista with some web programming experience, this book will definitely help them further up the ladder of true competence. For a mature, capable Python programmer, this book is a route to expertise.

I heartily recommend this book.