Aestate
aestate
work
xmlhandler
base.py
Go to the documentation of this file.
1
# -*- utf-8 -*-
2
from
_ast
import
AST
3
4
5
class
Attribute
:
6
def
__init__
(self, name, node):
7
self.
root
= node
8
self.
text
= node.value
9
self.
name
= name
10
11
12
class
TextNode
:
13
def
__init__
(self, root, node, index):
14
self.
root
= root
15
self.
node
= node
16
self.
index
= index
17
self.
childNodes
= node.childNodes
if
hasattr(node,
'childNodes'
)
else
None
18
self.
attributes
= node.attributes
if
hasattr(node,
'attributes'
)
else
None
19
20
@property
21
def
text
(self):
22
return
self.
node
.text
if
hasattr(self.
node
,
'text'
)
else
self.
node
.data
23
24
def
__str__
(self):
25
return
self.
node
.text
26
27
28
class
AestateNode
(list):
29
def
__init__
(self, root, node):
30
list.__init__([])
31
self.
root
= root
32
self.
node
= node
33
# 给定一个标记,让剩下的标签允许存放信息
34
self.
mark
= {}
35
36
def
add
(self, node, index) -> None:
37
self.append(
TextNode
(self.
root
, node, index))
38
39
@property
40
def
text
(self):
41
texts = [i.text
for
i
in
self]
42
# for i, v in enumerate(arr):
43
# if v.node.nodeName in XML_KEY.keys():
44
# obj = XML_KEY[v.node.nodeName](v)
45
# texts.append(obj.pure_str(XML_KEY))
46
# elif v.node.nodeName in XML_TEXT_NODE:
47
# texts.append(v.node.data)
48
return
' '
.join(texts)
49
50
def
__str__
(self) -> str:
51
return
self.
text
52
53
54
def
parse_attributes
(attr):
55
if
attr
is
None
:
56
return
{}
57
objs = {}
58
for
k, v
in
attr._attrs.items():
59
objs[k] =
Attribute
(name=k, node=v)
60
return
objs
61
62
63
class
ResultAST
(AST):
64
"""返回值的ast抽象语法树"""
65
66
@staticmethod
67
def
parse
(resultMap):
68
pass
aestate.work.xmlhandler.base.TextNode
Definition:
base.py:12
aestate.work.xmlhandler.base.TextNode.__init__
def __init__(self, root, node, index)
Definition:
base.py:13
aestate.work.xmlhandler.base.TextNode.index
index
Definition:
base.py:16
aestate.work.xmlhandler.base.TextNode.__str__
def __str__(self)
Definition:
base.py:24
aestate.work.xmlhandler.base.Attribute.text
text
Definition:
base.py:8
aestate.work.xmlhandler.base.TextNode.node
node
Definition:
base.py:15
aestate.work.xmlhandler.base.AestateNode.__str__
str __str__(self)
Definition:
base.py:50
aestate.work.xmlhandler.base.Attribute.__init__
def __init__(self, name, node)
Definition:
base.py:6
aestate.work.xmlhandler.base.AestateNode
Definition:
base.py:28
aestate.work.xmlhandler.base.AestateNode.mark
mark
Definition:
base.py:34
aestate.work.xmlhandler.base.AestateNode.add
None add(self, node, index)
Definition:
base.py:36
aestate.work.xmlhandler.base.TextNode.root
root
Definition:
base.py:14
aestate.work.xmlhandler.base.AestateNode.text
def text(self)
Definition:
base.py:40
aestate.work.xmlhandler.base.TextNode.childNodes
childNodes
Definition:
base.py:17
aestate.work.xmlhandler.base.AestateNode.node
node
Definition:
base.py:32
aestate.work.xmlhandler.base.AestateNode.root
root
Definition:
base.py:31
aestate.work.xmlhandler.base.ResultAST.parse
def parse(resultMap)
Definition:
base.py:67
aestate.work.xmlhandler.base.Attribute.root
root
Definition:
base.py:7
aestate.work.xmlhandler.base.TextNode.attributes
attributes
Definition:
base.py:18
aestate.work.xmlhandler.base.ResultAST
Definition:
base.py:63
aestate.work.xmlhandler.base.Attribute.name
name
Definition:
base.py:9
aestate.work.xmlhandler.base.parse_attributes
def parse_attributes(attr)
Definition:
base.py:54
aestate.work.xmlhandler.base.Attribute
Definition:
base.py:5
aestate.work.xmlhandler.base.TextNode.text
def text(self)
Definition:
base.py:21
aestate.work.xmlhandler.base.AestateNode.__init__
def __init__(self, root, node)
Definition:
base.py:29
Generated by
1.8.17