打开XML插件并使用元素树解析

时间:2014-03-23 18:56:34

标签: python xml parsing plugins qgis

我在QGIS中创建插件以打开并读取XML文件,然后解析它并显示它的比例图,它是一个大的xml文件和带有比例信息的行具有这样的格式

<gmd:denominator>
<gco:Integer>ScaleValue</gco:Integer>
</gmd:denominator>

我尝试这样的代码打开xml文件,然后解析它:

from PyQt4 import QtCore, QtGui
from ui_latih import Ui_latih
# create the dialog for zoom to point


class latihDialog(QtGui.QDialog):
    def __init__(self):
        QtGui.QDialog.__init__(self)
        # Set up the user interface from Designer.
        self.ui = Ui_latih()
        self.ui.setupUi(self)

        cariButton = self.ui.btnCari
        QtCore.QObject.connect(cariButton, QtCore.SIGNAL('clicked()'),self.cari)

    def cari(self, event=None):

        #open dialog
        filename = QtGui.QFileDialog.getOpenFileName(self, 'Open File', '*.xml')

        self.ui.lineFile.setText(filename)

        #call text
        self.isiDataFile(filename)

    def isiDataFile(self, nmfile):
        #open with read mode
        teksFile = open(nmfile, 'r').read()

        self.ui.textFile.setText(teksFile)

    import xml.etree.ElementTree as ET

    tree = ET.parse(filename)
    doc = tree.getroot()

    for elem in doc.findall('Default_Config/gmd:denominator'):
        x = elem.tag, elem.text
        self.ui.lineSkala.setText(x)

    for elem in doc.findall('Default_Config/gmd:MD_Format'):
        y = elem.tag, elem.text
        self.ui.lineFitur.setText(y)

我尝试使用Element Tree解析并在LineEdit中显示ScaleValue,因为它集成在python中,但我有这样的错误消息:

NameError: name 'filename' is not defined

我是python和xml解析器中的新手,我可以将xml位置从打开的xml代码传递到

tree = ET.parse( )

因为我计划打开多个xml文件并在一个和另一个xml文件中扩展具有不同的值

有人可以帮助我吗?

0 个答案:

没有答案
相关问题