For sale: One boat anchor.
Agree with others that it is not a good introduction book. Dense, long-winded, I kept waiting for information I could use without needing to read 4 other chapters.
As an added bonus, I'll throw in the XPath book as well. For those of you who have two boats.
Stick to the older release
I've bought the XSLT Programmer's Reference from the same author and it's a terrific book, so when XSLT 2.0 came out, I immediately bought it ... only to be highly disapponted. The previous edition (or the original book if you like) covered everything you need to know (or ever wanted to know) to become an XSLT 1.0 guru. This one contains half of it, the other half is in another book (XPATH 2.0).
While I understand that XSLT 2.0 has expanded so much that XSLT+XPATH don't fit into a single book (plus it generates more revenue for the author and the publisher), buying this book at the current point in time (where there is very limited support for XSLT 2.0) is a questionable choice. You're much better off buying the older version, which covers (the whole span of) technology used in actual products.
Excellent, Comprehenive and Praxis Oriented
I had to do something with XSLT. I never did really anything with XSLT before, but are very familiar with XML and programming in general.
I got from a friend the prior edition (XSLT 2nd Ed.) to this one (XSLT 2.0) and was impressed about the deep knowledge, especially the practical one and loved the comparison to actual source code in other programming languages in cases where XSLT and its philosophy differs dramatically from classic programming languages.
I found the answers to all my (tricky) issues, except to one where I got enough information to figure it out myself though. I struggled and still do when it comes to html tags usage as value in XSLT Functions. Be it "translate" , "regex" or "substring-after" etc. I still did not get my translate of white spaces (line break) to html line-breaks ( br - tag ) working 100%. May be the updated Edition answers this only thing that was not 100% perfect covered (for me) in the previous edition.
The book "stole" an hour from me to read the interesting chapters about the programming language philosophy behind XSLT, the "functional programming" rather than "structured programming". I saw a lot of other chapters providing a well researched history of computer programming before the Internet until now.
The Book is big and it is not one of those big books that are artificially inflated by adding screen shots of intuitive and straight forward pages that do not require any explanation. No, not in this case. You get over 700 pages (2nd Ed) and over 900 pages (this edition) full of great stuff that would still make a good book, even if you remove every part about XSLT from it.
I came to buy the 2nd Edition today and saw the XSLT 2.0 (3rd Edition) which I obviously bought instead. I am looking forward to get the updated and obviously greatly extended version within the next few days. You get a lot of knowledge and experience for what the books price is (I am amazed how cheap it, Wrox, I think I got the better end of the bargain in case of this book ;) )
The mentioned resources in the book are also great. I added several of them next to Michael Kay's books to the Web Development Resources Section of my personal (but public) Internet Marketing and Web Development portal at [...].
I hated this book
The author spends the first 176 pages giving an overview of XSLT using terms that he hasn't defined yet! I like the analytical approach, I like overviews before I dive into the details, but, for goodness' sake, defining how the engine transforms a document in terms of xslt operations and functions that aren't even discussed yet is just a really weird way of explaining something.
Then, in chapter 5, the 320 page chapter where he covers the xslt elements in alphabetical order, he gives you a nice little table on pp 175-6 that groups the elements together logically by function, but he doesn't even bother to give you the page numbers, so you can't use the table to drive your reading unless you go through the index and manually copy each page number.
Almost everything in the book seems to explain something in terms of something else that isn't explained yet, and that isn't even easy--or possible--to find, so you spend the whole book (900+ pages) juggling stuff in the air, hoping you keep everything straight until you finally get enough information to actually understand something well enough to use it.
As an example, as someone who just wants to do a few things with XSLT since I am not and never will aspire to be an XSLT developer--I just need to use a little of it for my current project--one of the most important elements for me to learn is the for-each select="x". Well, guess what? The x turns out to be an XPath expression, and since both XSLT and XPath are now so big, I have to buy another 500+ book on XPath in order to understand the for-each. You may say, that that's the way it is, and I just just suck it up and do it (which I am), but a better author could have made the information a little easier to master.
In conclusion, I am not suggesting that Kay doesn't know what he's talking about, or even that XSLT developers won't like this book. I am saying that, for the rest of us who just want to do a few things and then get on with our lives, this is not the book to buy. I can't imagine a worse book for anyone who just wants to learn enough XSLT to get by. And even for those who do want to learn it all, this is still a really weird book.
Its a reference. Not a tutorial.
I've read the reviews on here and the lower ratings really lost sight of what this book is about - its a programmers REFERENCE. Not a tutorial hand holding guide. It is meant to give details on why XSLT is what it is in detail. It is not meant to teach you through step by step examples.
That said, on this basis, the book gets four stars. To be given the opportunity to read through the words of a W3C member who was directly involved in the XSLT 2.0 specification is a gift. How many times do you get the chance to read technical works directly from the source in this amount of detail? Realize Mr. Kay also has done something few people have - created an XSLT processor. So you are getting more information than what you will probably ever need but all packed into one large reference. More so, its one individual, not a group of people where thoughts and theories are disconnected.
This book is not an easy read. If you are looking to get up and running creating stylesheets forget it and be left disappointed. At times it is dry and boring and has too much information to get lost in. Because it is a programmer's reference I really didn't want to know everything, just the 80% of things that really matter. And that's what a programmers reference should be - a well organized book that lets you find things quickly and has enough information in it to let you make decisions.
Unfortunately, there are few XSLT books that are worth reading. Yes, this book reads like a technical IMPLEMENTATION specifcation. Use this book when you want to know how things work and why it was designed that way.