Pull and Sax are similar in the way that they are both low-level streaming approaches which are faster and more memory efficient than DOM, but pull has a few advantages over SAX:
Pull is easier to implement than SAX because you don't have to maintain the state of your parser (using additional variables to be able to know in which place your parser currently is in the XML tree). The nested loops in your pull parser code will more or less match the XML hierarchy of your document so I think the Pull parser code is also more readable than the SAX parser code.
With pull parser code you can skip entire blocks that you don't want to parse so it's also more efficient than SAX which always extracts the main information of all nodes. Using a pull parser, you can also stop the parsing at any moment if you fetched the information you wanted, which is not possible with SAX.
Also, you can implement a SAX parser using a pull parser. The opposite is not possible.
For all these reasons I believe the pull parser is superior to SAX in all situations, however like SAX it's not trivial to implement properly and you have to be careful. If you don't need the low-level speed benefits of pull and SAX and your XML is clean, you can always use a higher-level parsing library like Simple to do the hard work for you.