Web services are the mainstream distributed computing technology to construct aservice-oriented architecture (SOA). Over the past few years, lots of works have been carried out in comparing SOAP with binary protocols, such as Java RMI and CORBA. These researches show that there is a dramatic difference in the amount of encoding necessary for data transmission, when XML is compared with the binary encoding style, and all these researches have proven that SOAP, because of its reliance on XML, is inefficient compared with its peers in distributed computing. Although the performance of Web services is adequate for many important purposes, processing speed unfortunately remains to be a problem in more demanding applications. Some limitations are inherent in core features of XML: it is text based, flexible in format, and carries redundant information. Aiming at this question, a new approach to improve Web services performance is proposed. To avoid the cost brought by the traditional XML parsing and Java reflection at runtime, a specific SOAP message processor is generated dynamically for each Web service, which can create Java object for service business invoking by scanning SOAP message only once. The given experiments show that the approach can effectively improve the performance of Web service by incorporating the SOAP message processor into the SOAP engine.