Had this around for a while but it needed some finishing touches. This ousts the last loop-based XML parser iterating over XML nodes and replaces it by something more modern, fixing a few bugs i the process and cleaning stuff up. There are a few of such parsers still around e.g in the network XML parsing part. Peter Krempa (7): virPCIDeviceAddressParseXML: Use virXMLNodeGetSubelement to find 'zpci' virNetDevVPortProfileParse: Use virXMLNodeGetSubelement to find '<parameters>' virNetworkDHCPRangeDefParseXML: Use virXMLNodeGetSubelement to find 'lease' virNetworkDHCPHostDefParseXML: Use virXMLNodeGetSubelement to find 'lease' virBitmapIsBitSet: Allow NULL bitmap qemustatusxml2xmltest: Add test data for testing '<origstates>' of PCI hostdev conf: Store 'origstates' of PCI hostdevs in a bitmap src/conf/device_conf.c | 16 +--- src/conf/domain_conf.c | 97 +++++++++++------------ src/conf/domain_conf.h | 31 +++----- src/conf/netdev_vport_profile_conf.c | 20 ++--- src/conf/network_conf.c | 28 ++----- src/conf/virconftypes.h | 2 - src/hypervisor/virhostdev.c | 25 +++--- src/util/virbitmap.c | 4 +- src/util/virbitmap.h | 2 +- tests/qemustatusxml2xmldata/modern-in.xml | 12 +++ 10 files changed, 107 insertions(+), 130 deletions(-) -- 2.39.1