datasource.py 472 B

123456789101112
  1. from PyQt5.QtXml import QDomDocument
  2. from qgis.core import QgsReadWriteContext
  3. def change_datasource(layer, target_uri):
  4. doc = QDomDocument("styles")
  5. element = doc.createElement("maplayer")
  6. layer.writeLayerXml(element, doc, QgsReadWriteContext())
  7. element.elementsByTagName("datasource").item(0).firstChild().setNodeValue(target_uri.uri())
  8. layer.readLayerXml(element, QgsReadWriteContext())
  9. # layer.setDataSource(new_datasource, new_name, 'ogr')