Aestate
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