use lxml to do the parse