@@ -76,11 +76,11 @@ def nodeval(node: minidom.Element, name: str) -> str | None:
76
76
77
77
78
78
class DomDocument :
79
- def __init__ (self , dom : minidom .Document ):
80
- self ._node = dom
81
-
82
79
_node : minidom .Document | minidom .Element
83
80
81
+ def __init__ (self , dom : minidom .Document ) -> None :
82
+ self ._node = dom
83
+
84
84
def find_first_by_tag (self , tag : str ) -> DomNode | None :
85
85
return self .find_nth_by_tag (tag , 0 )
86
86
@@ -105,7 +105,9 @@ def find_by_tag(self, tag: str) -> list[DomNode]:
105
105
106
106
@property
107
107
def children (self ) -> list [DomNode ]:
108
- return [DomNode (x ) for x in self ._node .childNodes ]
108
+ return [
109
+ DomNode (x ) for x in self ._node .childNodes if isinstance (x , minidom .Element )
110
+ ]
109
111
110
112
@property
111
113
def get_unique_child (self ) -> DomNode :
@@ -120,7 +122,7 @@ def toxml(self) -> str:
120
122
class DomNode (DomDocument ):
121
123
_node : minidom .Element
122
124
123
- def __init__ (self , dom : minidom .Element ):
125
+ def __init__ (self , dom : minidom .Element ) -> None :
124
126
self ._node = dom
125
127
126
128
def __repr__ (self ) -> str :
@@ -129,7 +131,7 @@ def __repr__(self) -> str:
129
131
def __getitem__ (self , key : str ) -> str :
130
132
node = self ._node .getAttributeNode (key )
131
133
if node is not None :
132
- return cast ( str , node .value )
134
+ return node .value
133
135
else :
134
136
raise KeyError (key )
135
137
@@ -139,7 +141,9 @@ def assert_attr(self, **kwargs: object) -> None:
139
141
140
142
@property
141
143
def text (self ) -> str :
142
- return cast (str , self ._node .childNodes [0 ].wholeText )
144
+ text = self ._node .childNodes [0 ]
145
+ assert isinstance (text , minidom .Text )
146
+ return text .wholeText
143
147
144
148
@property
145
149
def tag (self ) -> str :
0 commit comments