xml parser based C