After experiencing the same update issues I built a short-term solution that helps to mend the situation until developers adjust the syntax errors in the problematic XML file.
Proposed Short-Term Solution: bugfix.sh
#! /bin/bash
# bugfix.sh
#
# DESCRIPTION
# Temporary fix for Ubuntu firmware update issues
# Created by h8rt3rmin8r on 20180804
#
# BUG INFORMATION
# File location: /var/cache/app-info/xmls/fwupd.xml
# Line number: 265
SRC_STRING=$(sudo cat /var/cache/app-info/xmls/fwupd.xml)
OLD_SUBSTRING='Firmware_SF30&SN30_Pro_V1'
NEW_SUBSTRING='Firmware_SF30&SN30_Pro_V1'
touch /dev/shm/bugfix.xml
echo ${SRC_STRING/$OLD_SUBSTRING/$NEW_SUBSTRING} > /dev/shm/bugfix.xml
sudo mv /dev/shm/bugfix.xml /var/cache/app-info/xmls/fwupd.xml
Instructions On Using bugfix.sh:
To run bugfix.sh, simply copy the code above into a new file (using a text editor like gedit) and save that file as "bugfix.sh" in a convenient location.
While located in the same directory as the bugfix.sh script, enable script execution with the following command: sudo chmod +x bugfix.sh
Run the bugfix script with the command: ./bugfix.sh
Additional Notes:
Running this script will temporarily solve the problem at hand. If the error in question pops up again at a later date then just run the script again.
For easy access you could even store this script in /usr/local/bin so you can call it directly from the terminal with bugfix.sh. Then, as long as the bug is around, you can call bugfix.sh before running sudo apt-get update && sudo apt-get -y dist-upgrade.