ในไพ ธ อนมันเป็นไปได้ที่จะปรับเปลี่ยนแหล่งข้อมูลโดยตรงโดยใช้ QgsVectorLayer.writeLayerXML และ QgsVectorLayer.readLayerXML การแก้ไขเอกสาร DOM บน fly และโหลดเลเยอร์ใหม่จากตัวอย่างด้านล่าง
from PyQt4.QtXml import *
from qgis.core import *
from PyQt4.QtXml import *
layer = self.iface.legendInterface().currentLayer()
newDatasource = "NEW DATASOURCE STRING" # get datasource from layer properties general tab
newDatasourceProvider = "ogr" # possible values: (ogr, )
# read layer DOM definition
XMLDocument = QDomDocument("style")
XMLMapLayers = QDomElement()
XMLMapLayers = XMLDocument.createElement("maplayers")
XMLMapLayer = QDomElement()
XMLMapLayer = XMLDocument.createElement("maplayer")
layer.writeLayerXML(XMLMapLayer,XMLDocument)
# modify DOM element with new layer reference
XMLMapLayer.firstChildElement("datasource").firstChild().setNodeValue(newDatasource)
XMLMapLayer.firstChildElement("provider").firstChild().setNodeValue(newDatasourceProvider)
XMLMapLayers.appendChild(XMLMapLayer)
XMLDocument.appendChild(XMLMapLayers)
# reload layer definition
self.layer.readLayerXML(XMLMapLayer)
self.layer.reload()
# apply to canvas and legend
self.iface.actionDraw().trigger()
self.iface.legendInterface().refreshLayerSymbology(self.layer)
คุณลักษณะนี้รวมอยู่ในปลั๊กอิน PickLayerที่อนุญาตให้ดำเนินการกับเลเยอร์และคุณลักษณะที่คลิก