We introduce streaming tree transducers as an analyzable and expressive model for transforming hierarchically structured data in a single pass. Given a linear encoding of the input tree, the transducer makes a single left-to-right pass through the input, and computes the linear encoding of the output tree in linear time using a finite-state control, a finite number of string variables, and a visibly pushdown stack. We establish that the model is closed under regular look ahead: allowing the transducer to make decisions based on a regular property of the remaining input suffix does not increase expressiveness. The expressiveness of the model coincides with transductions definable using monadic second-order logic (MSO). Finally, we establish a NExpTime upper bound for checking functional inequivalence of two streaming tree transducers.