Xu trat international erstmals bei den Olympischen Jugend-Winterspielen 2012 in Innsbruck in Erscheinung. Dort gewann er über 500 m und über 1000 m die Bronzemedaille und mit der Staffel die Silbermedaille. Zu Beginn der Saison 2014/15 debütierte er in Salt Lake City im Weltcup und belegte dabei den 19. Rang über 1500 m. Mit der Staffel erreichte er dort den zweiten Platz. Beim Weltcup in Seoul kam er mit der Staffel auf den dritten Rang. Bei den Weltmeisterschaften 2015 in Moskau holte er mit der Staffel über 5000 m die Goldmedaille. Im folgenden Jahr wiederholte er bei den Weltmeisterschaften 2016 in Seoul diesen Erfolg. Bei den Juniorenweltmeisterschaften 2016 in Sofia gewann er über 500 m und mit der Staffel jeweils die Goldmedaille. In der Saison 2016/17 siegte er im Weltcup in Salt Lake City und in Shanghai jeweils mit der Staffel. Bei den Weltmeisterschaften 2017 in Rotterdam holte er die Silbermedaille mit der Staffel. Im Februar 2017 holte er bei den Winter-Asienspielen in Sapporo die Goldmedaille mit der Staffel. In der folgenden Saison kam er beim Weltcup in Budapest auf den zweiten und in Dordrecht auf den dritten Rang mit der Staffel. Bei den Olympischen Winterspielen 2018 in Pyeongchang gewann Xu mit der Staffel über 5000 m die Silbermedaille. Im März 2018 holte er bei den Weltmeisterschaften in Montreal die Silbermedaille über 3000 m. Im Dezember 2018 wurde er beim Weltcup in Almaty jeweils Dritter mit der Staffel und der Mixed-Staffel. Bei den Weltmeisterschaften 2019 in Sofia gewann er mit der Staffel die Silbermedaille. Im Mehrkampf errang er dort den 12. Platz.