<div dir="ltr"><div class="" itemprop="description">

        <p>I make plugin in QGIS to open and read XML file, then parse 
it and show scale map from it, its a big xml file and line with scale 
information have format like this</p>

<pre style class=""><code><span class=""><gmd:denominator></span><span class="">
</span><span class=""><gco:Integer></span><span class="">ScaleValue</span><span class=""></gco:Integer></span><span class="">
</span><span class=""></gmd:denominator></span></code></pre>

<p>and i try code like this to open xml file and then parse it:</p>

<pre style class=""><code><span class="">from</span><span class=""> </span><span class="">PyQt4</span><span class=""> </span><span class="">import</span><span class=""> </span><span class="">QtCore</span><span class="">,</span><span class=""> </span><span class="">QtGui</span><span class="">
</span><span class="">from</span><span class=""> ui_latih </span><span class="">import</span><span class=""> </span><span class="">Ui_latih</span><span class="">
</span><span class=""># create the dialog for zoom to point</span><span class="">


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

        cariButton </span><span class="">=</span><span class=""> </span><span class="">self</span><span class="">.</span><span class="">ui</span><span class="">.</span><span class="">btnCari
        </span><span class="">QtCore</span><span class="">.</span><span class="">QObject</span><span class="">.</span><span class="">connect</span><span class="">(</span><span class="">cariButton</span><span class="">,</span><span class=""> </span><span class="">QtCore</span><span class="">.</span><span class="">SIGNAL</span><span class="">(</span><span class="">'clicked()'</span><span class="">),</span><span class="">self</span><span class="">.</span><span class="">cari</span><span class="">)</span><span class="">

    </span><span class="">def</span><span class=""> cari</span><span class="">(</span><span class="">self</span><span class="">,</span><span class=""> </span><span class="">event</span><span class="">=</span><span class="">None</span><span class="">):</span><span class="">

        </span><span class="">#open dialog</span><span class="">
        filename </span><span class="">=</span><span class=""> </span><span class="">QtGui</span><span class="">.</span><span class="">QFileDialog</span><span class="">.</span><span class="">getOpenFileName</span><span class="">(</span><span class="">self</span><span class="">,</span><span class=""> </span><span class="">'Open File'</span><span class="">,</span><span class=""> </span><span class="">'*.xml'</span><span class="">)</span><span class="">

        </span><span class="">self</span><span class="">.</span><span class="">ui</span><span class="">.</span><span class="">lineFile</span><span class="">.</span><span class="">setText</span><span class="">(</span><span class="">filename</span><span class="">)</span><span class="">

        </span><span class="">#call text</span><span class="">
        </span><span class="">self</span><span class="">.</span><span class="">isiDataFile</span><span class="">(</span><span class="">filename</span><span class="">)</span><span class="">

    </span><span class="">def</span><span class=""> isiDataFile</span><span class="">(</span><span class="">self</span><span class="">,</span><span class=""> nmfile</span><span class="">):</span><span class="">
        </span><span class="">#open with read mode</span><span class="">
        teksFile </span><span class="">=</span><span class=""> open</span><span class="">(</span><span class="">nmfile</span><span class="">,</span><span class=""> </span><span class="">'r'</span><span class="">).</span><span class="">read</span><span class="">()</span><span class="">

        </span><span class="">self</span><span class="">.</span><span class="">ui</span><span class="">.</span><span class="">textFile</span><span class="">.</span><span class="">setText</span><span class="">(</span><span class="">teksFile</span><span class="">)</span><span class="">

    </span><span class="">import</span><span class=""> xml</span><span class="">.</span><span class="">etree</span><span class="">.</span><span class="">ElementTree</span><span class=""> </span><span class="">as</span><span class=""> ET

    tree </span><span class="">=</span><span class=""> ET</span><span class="">.</span><span class="">parse</span><span class="">(</span><span class="">filename</span><span class="">)</span><span class="">
    doc </span><span class="">=</span><span class=""> tree</span><span class="">.</span><span class="">getroot</span><span class="">()</span><span class="">

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

    </span><span class="">for</span><span class=""> elem </span><span class="">in</span><span class=""> doc</span><span class="">.</span><span class="">findall</span><span class="">(</span><span class="">'Default_Config/gmd:MD_Format'</span><span class="">):</span><span class="">
        y </span><span class="">=</span><span class=""> elem</span><span class="">.</span><span class="">tag</span><span class="">,</span><span class=""> elem</span><span class="">.</span><span class="">text
        </span><span class="">self</span><span class="">.</span><span class="">ui</span><span class="">.</span><span class="">lineFitur</span><span class="">.</span><span class="">setText</span><span class="">(</span><span class="">y</span><span class="">)</span></code></pre>


<p>I try using Element Tree to parse and show ScaleValue in LineEdit 
because its integrated in python, but i have error message like this : </p>

<pre style class=""><code><span class="">NameError</span><span class="">:</span><span class=""> name </span><span class="">'filename'</span><span class=""> </span><span class="">is</span><span class=""> </span><span class="">not</span><span class=""> </span><span class="">defined</span></code></pre>


<p>i am really newbie in python and xml parser, can i pass the xml location from open xml code to </p>

<pre style class=""><code><span class="">tree </span><span class="">=</span><span class=""> ET</span><span class="">.</span><span class="">parse</span><span class="">(</span><span class=""> </span><span class="">)</span></code></pre>


<p>because i plan to open more than one xml file and scale in one and another xml file have different value as well</p>

<p>Can Someone help me?</p>

    </div></div>