An X-ray tube spectra measuring method is presented in this paper. The measurement is accomplished by reconstruction from attenuation data based on a nine-parameter tungsten anode X-ray spectral model. The proposed model is derived from a physical basis and composed of three parts: bremsstrahlung spectra, photoemission attenuation by X- ray tube inherent and added filter, characteristic radiations denoted by four Dirac delta functions. Firstly, for simplicity, the four characteristic radiations of the spectra model are merged into two according to a reasonable hypothesis. Secondly, the spectra reconstruction based on the modified model is carried out by calculating the model parameters from measured attenuation data. To further improve stability, two kinds of materials are used as the attenuators. Experiments show that this method can reach high precision and is insensitive to the noise in measured attenuation data. From the 10 measured attenuation data (7 from Al, and 3 from Copper) with 5% Poisson noise added, the precision of the reconstructed spectra can reach 98.56% for the 70kVp X-ray tube with tiny characteristic radiation, and 98.24% for the 120kVp X-ray tube with characteristic radiation. Spectrum is the characteristic of X- ray tube and widely used for many purposes. In engineering, the spectrum is mostly reconstructed from attenuation data, which is an ill-posed problem in mathematics. The method we presented with the features of including characteristic radiation, insensitive to noise and demanding fewer attenuation data will help to solve this problem perfectly.