Hmmm, I just noted onething, when `self.xml_file is not None and tmpdir is not None`, I will use `tmpdir/xml_file` to update self.xml_file, so if I do like what you said, I cannot update self.xml_file, I will fix it too