Reklama
Pokazuje wyniki od 1 do 6 z 6

Temat: [Python][XML]Wyciągnięcie attrybutu od wybranego roota

  1. #1
    Avatar Rysiek
    Data rejestracji
    2006
    Posty
    185
    Siła reputacji
    19

    Domyślny [Python][XML]Wyciągnięcie attrybutu od wybranego roota

    Nie radzę sobie ze znalezieniem odpowiedniego rozwiązania w google, w dokumentacji nie lepiej. Więc przejdźmy do problemu:
    Weźmy przykładowy XML z dokumentacji:
    Kod:
    <?xml version="1.0"?>
    <data>
        <country name="Liechtenstein"> 
           <rank>1</rank>
            <year>2008</year>
            <gdppc>141100</gdppc>
            <neighbor name="Austria" direction="E"/>
            <neighbor name="Switzerland" direction="W"/>
        </country>
        <country name="Singapore">
            <rank>4</rank>
            <year>2011</year>
            <gdppc>59900</gdppc>
            <neighbor name="Malaysia" direction="N"/>
        </country>
        <country name="Panama">
            <rank>68</rank>
            <year>2011</year>
            <gdppc>13600</gdppc>
            <neighbor name="Costa Rica" direction="W"/>
            <neighbor name="Colombia" direction="E"/>
        </country>
     </data>
    Jak mogę wyciągnąć wartość name dla neighbor Singapuru? Nie potrafię poprawnej struktury do tego sklecić.

  2. #2
    Avatar Rollercoster
    Data rejestracji
    2011
    Wiek
    29
    Posty
    1,247
    Siła reputacji
    14

  3. Reklama
  4. #3
    Avatar Rysiek
    Data rejestracji
    2006
    Posty
    185
    Siła reputacji
    19

    Domyślny

    Z definicji nie działa. Wkleiłem nawet gotowy kod, z tej strony i podpiąłem do gotowego pliku xml.
    Kod:
    import sys
    fromxml.domimportminidom
    #Open XML document using minidom parserDOMTree = minidom.parse('plik.xml')#pobieramy elementy struktury dokumentu XMLcNodes = DOMTree.childNodesfor i in cNodes[0].getElementsByTagName("osoba"):    # nazwa taga    print i.getElementsByTagName("imie")[0].nodeName    # wartosc taga    print i.getElementsByTagName("imie")[0].childNodes[0].toxml()    # dostep do atrybutu printi.getElementsByTagName("imie")[0].getAttribute("foo")
    Błąd:
    Kod:
    Traceback (most recent call last):  File "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensio
    ns\Microsoft\Python Tools for Visual Studio\2.0\visualstudio_py_util.py", line 7
    3, in exec_file
        code_obj = compile(f.read().replace(to_bytes('\r\n'), to_bytes('\n')) + to_b
    ytes('\n'), file, 'exec')
      File "C:\Users\Kamil\Documents\Visual Studio 2013\Projects\CombatSim\CombatSim
    \CombatSim.py", line 11
        print i.getElementsByTagName("imie")[0].nodeName
              ^
    SyntaxError: invalid syntax
    Press any key to continue . . .

  5. #4
    Avatar Rollercoster
    Data rejestracji
    2011
    Wiek
    29
    Posty
    1,247
    Siła reputacji
    14

    Domyślny

    SyntaxError: invalid syntax (^) pokazuje miejsce błędu, niestety nie jestem na tyle w pyhonie ogarniety zeby to poprawic :)

  6. #5

    Data rejestracji
    2005
    Posty
    257
    Siła reputacji
    19

    Domyślny

    Po pierwsze - polecam bibliotekę lxml oraz wyrażenia XPath ;)

    Po drugie - podrzuć swój kod na gist.github.com albo ideone.com, to pomogę.

    @edit:

    Jeśli to jest Python 3, to nie print iblablabla, tylko print(iblablabla).

  7. #6

    Data rejestracji
    2010
    Posty
    2,657
    Siła reputacji
    16

    Domyślny

    Ta, to jest python 3 pewno i dlatego Ci tam pokazuje error. Nawiasy w print musza byc.

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. [C#][XAML]ListBox - kolor wybranego itema
    Przez Kusterek w dziale Programowanie
    Odpowiedzi: 4
    Ostatni post: 08-11-2013, 12:38
  2. Zablokowanie wybranego numeru.
    Przez Serllo w dziale Urządzenia mobilne
    Odpowiedzi: 1
    Ostatni post: 24-10-2013, 10:37
  3. Jak zablokowac polaczenia od wybranego numeru?
    Przez Criss26 w dziale Urządzenia mobilne
    Odpowiedzi: 8
    Ostatni post: 22-03-2013, 07:12
  4. C++, kasowanie wybranego wiersza w pliku txt.
    Przez coke w dziale Sprzęt i oprogramowanie
    Odpowiedzi: 1
    Ostatni post: 04-03-2012, 02:08
  5. Niezadowolenie z wybranego kierunku studiów
    Przez Draho1 w dziale Szkoła i nauka
    Odpowiedzi: 4
    Ostatni post: 28-12-2011, 19:58

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •