I have had this book for years. I really like this book a lot.
Amazingly, it really did not start to become obsolete for almost half a decade. For a computer book on a heavily used computer language, that is great.
What this means is two things:
First, you can put XML fragments in your program. Just as quoted strings are interpreted as string literals, these fragments are treated as XML literals. No quoting or anything is required: the parser just sees them and knows what they are.
Second, you can evaluate XPath-like expressions to find things in an XML fragment value. Those things would be attribute values, text content, and elements that are in it.
Today, XML is much more important to organizations and much more useful to programmers than it was in 2001. It is a given that easier, more powerful ways for programmers to work with XML are going to grab programmers' interest.
Another thing has changed since 2001. AJAX programming has become white-hot. Website users like it because the system seems more responsive. Programmers like it because it lets them create web sites that seem more fun and are more impressive to a generation numbed-out by constant fill-in-form/Submit cycle of web pages. Companies like it because it AJAX is "in" and having it on their site can draw people to it by word of mouth or as marketable feature.
AJAX programming relies on the XMLHttpRequest object. That is not described in this book. Consequently AJAX programming is not explained in it.
A lot of AJAX components & effects libraries; e.g. Prototype.js, scriptaculous (script.aculo.us if you are looking for it on the web), etc., were in high gear by 2005. Since the book came out years before that, it does not mention any of these, tell what they can do, or explain how to write programs that use them.
Two other standards got added to Firefox 1.5 when it was released in 2005: SVG content and the CANVAS element. While CANVAS is a new invention, it is already supported by Apple's Safari 2 web browser that came with Tiger, released in early 2005. SVG is a very mature standard, invented in the late 1990s - but not really included in a widely distributed piece of software until Firefox included it. From watching what is going on in Apple's Safari development site, it seems likely Safari will gain SVG support sometime in 2006.
These 2 graphics capabilities are both important.
The CANVAS element is perfect for realtime and/or interactive graphics. For instance, it would be great for a "paint" program or a constantly-updated graph/chart display.
The SVG content is XML. The elements describe how to draw some shapes and text, fill them in, draw the borders, and perform transformations on them - as well as fancy effects like "shear". The power of SVG is huge. It can be used to draw all of the things described, plus more advanced things like "quadratic bezier curves". This makes it also suited to render art objects or sophisticated two-dimensional visualizations.
Now, go back to what is in the 4th edition of the book. The coverage of the different types of objects is covered in different sections - based on what the objects are used for. This is fine, but then there needs to be a special alphabetized index as well as detailed table of contents that shows you where to find each one - and what is in each section. Reading the whole book is not an option when you are in a hurry. When you are doing stuff on the web, you are always in a hurry. So, ways to find things quickly and survey quickly what is there - that is crucial.
I think a 5th edition of this book could be phenomenal, if it takes care of the omissions I have cited. Even in its present form, it does a good job of teaching the language - with the exception of the missing items I have noted.