Zanurkuj w Pythonie/Tworzenie oddzielnych funkcji obsługi względem typu węzła: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Piotr (dyskusja | edycje)
mNie podano opisu zmian
Piotr (dyskusja | edycje)
Nie podano opisu zmian
Linia 1:
{{Python/Do tłumaczenia}}
 
{{Podświetl|py}}
== Tworzenie oddzielnych funkcji obsługi względem typu węzła ==
== Creating separate handlers by node type ==
 
Trzecim użytecznym chwytem podczas przetwarzania XML-a jest podzielenie kodu w logiczny sposób na funkcje oparte na typie węzła i nazwie elementu. Parsując dokument przetwarzamy rozmaite typy węzłów, które są reprezentowane przez obiekty Pythona. Poziom główny dokumentu jest bezpośrednio reprezentowany przez obiekt dokumentu. Następnie dokument zawiera jeden lub więcej obiektów elementów (w rzeczywistości znaczników XML), a każdy z nich może zawierać inne obiekty elementów, obiektów tekstowych (fragmenty tekstu), obiektów komentarzy (osadzone komentarze w dokumencie). Python pozwala w łatwy sposób napisać funkcję pośredniczącą, która rozdziela logikę dla każdego rodzaju węzła.
The third useful XML processing tip involves separating your code into logical functions, based on node types and element names. Parsed XML documents are made up of various types of nodes, each represented by a Python object. The root level of the document itself is represented by a Document object. The Document then contains one or more Element objects (for actual XML tags), each of which may contain other Element objects, Text objects (for bits of text), or Comment objects (for embedded comments). Python makes it easy to write a dispatcher to separate the logic for each node type.
 
'''ExamplePrzykład 10.17. ClassNazwy namesklas ofparsowanych parsedobiektów XML objects'''
 
>>> from xml.dom import minidom
Linia 17 ⟶ 15:
'Document'
 
# AssumeZałóżmy for ana moment, thatże <tt>kant.xml</tt> is injest thew currentbieżącym directorykatalogu.
# AsJak youpowiedzieliśmy saww in Section''podrozdziale 9.2'', “Packages”“Pakiety”, the object returned by parsingobiekt anzwrócony XMLprzez documentparsowany isdokument ajest Documentobiektem objectdokumentu, asktóry definedzostał inzdefiniowany thew <tt>minidom.py</tt> inw thepakiecie <tt>xml.dom</tt> package. As you saw in Section 5.4, “Instantiating Classes”, __class__ is built-in attribute of every Python object.
# Furthermore, __name__ is a built-in attribute of every Python class, and it is a string. This string is not mysterious; it's the same as the class name you type when you define a class yourself. (See Section 5.3, “Defining Classes”.)