CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Public Attributes | Static Public Attributes | Static Private Member Functions | Private Attributes
python.XML2Python.TreeBuilder Class Reference
Inheritance diagram for python.XML2Python.TreeBuilder:

Public Member Functions

def __init__
 
def characters
 
def endElement
 
def root
 
def startElement
 
def topLevel
 

Public Attributes

 current
 

Static Public Attributes

tuple non_id_char = re.compile('[^_0-9a-zA-Z]')
 

Static Private Member Functions

def _name_mangle
 

Private Attributes

 _ncDict
 
 _root
 
 _stack
 
 _text_parts
 

Detailed Description

Definition at line 65 of file XML2Python.py.

Constructor & Destructor Documentation

def python.XML2Python.TreeBuilder.__init__ (   self,
  kwargs 
)

Definition at line 69 of file XML2Python.py.

69 
70  def __init__ (self, **kwargs):
71  self._stack = []
72  self._text_parts = []
73  self._ncDict = kwargs.get ('nameChangeDict', {})
74  self._root = DataNode (nameChangeDict = self._ncDict)
75  self.current = self._root

Member Function Documentation

def python.XML2Python.TreeBuilder._name_mangle (   name)
staticprivate

Definition at line 108 of file XML2Python.py.

109  def _name_mangle (name):
110  return TreeBuilder.non_id_char.sub('_', name)
111 
def python.XML2Python.TreeBuilder.characters (   self,
  content 
)

Definition at line 96 of file XML2Python.py.

96 
97  def characters (self, content):
98  self._text_parts.append(content)
def python.XML2Python.TreeBuilder.endElement (   self,
  name 
)

Definition at line 84 of file XML2Python.py.

References python.XML2Python.TreeBuilder._text_parts, XML2Python.TreeBuilder._text_parts, python.XML2Python.TreeBuilder.current, XML2Python.TreeBuilder.current, and svgfig.Curve.Samples.current.

84 
85  def endElement (self, name):
86  text = ''.join (self._text_parts).strip()
87  if text:
88  self.current._data = text
89  if self.current.attributes():
90  obj = self.current
91  else:
92  # a text only node is simply represented by the string
93  obj = text or ''
94  self.current, self._text_parts = self._stack.pop()
95  self.current._add_xml_attr (TreeBuilder._name_mangle(name), obj)
def python.XML2Python.TreeBuilder.root (   self)

Definition at line 99 of file XML2Python.py.

References HcalTriggerKey._root, python.XML2Python.TreeBuilder._root, HcalChannelDataXml._root, and XML2Python.TreeBuilder._root.

99 
100  def root (self):
101  return self._root
def python.XML2Python.TreeBuilder.startElement (   self,
  name,
  attrs 
)

Definition at line 76 of file XML2Python.py.

References python.XML2Python.DataNode._ncDict, XML2Python.DataNode._ncDict, python.XML2Python.TreeBuilder._ncDict, XML2Python.TreeBuilder._ncDict, python.XML2Python.TreeBuilder._text_parts, XML2Python.TreeBuilder._text_parts, python.XML2Python.TreeBuilder.current, XML2Python.TreeBuilder.current, and svgfig.Curve.Samples.current.

76 
77  def startElement (self, name, attrs):
78  self._stack.append( (self.current, self._text_parts))
79  self.current = DataNode (nameChangeDict = self._ncDict)
80  self._text_parts = []
81  # xml attributes --> python attributes
82  for k, v in attrs.items():
83  self.current._add_xml_attr (TreeBuilder._name_mangle(k), v)
def python.XML2Python.TreeBuilder.topLevel (   self)
Returns top level object

Definition at line 102 of file XML2Python.py.

References makeHLTPrescaleTable.values.

103  def topLevel (self):
104  '''Returns top level object'''
105  return self._root.attributes().values()[0]
106 

Member Data Documentation

python.XML2Python.TreeBuilder._ncDict
private

Definition at line 72 of file XML2Python.py.

Referenced by python.XML2Python.TreeBuilder.startElement().

python.XML2Python.TreeBuilder._root
private

Definition at line 73 of file XML2Python.py.

Referenced by python.XML2Python.TreeBuilder.root().

python.XML2Python.TreeBuilder._stack
private

Definition at line 70 of file XML2Python.py.

python.XML2Python.TreeBuilder._text_parts
private

Definition at line 71 of file XML2Python.py.

Referenced by python.XML2Python.TreeBuilder.endElement(), and python.XML2Python.TreeBuilder.startElement().

python.XML2Python.TreeBuilder.current

Definition at line 74 of file XML2Python.py.

Referenced by python.XML2Python.TreeBuilder.endElement(), and python.XML2Python.TreeBuilder.startElement().

tuple python.XML2Python.TreeBuilder.non_id_char = re.compile('[^_0-9a-zA-Z]')
static

Definition at line 67 of file XML2Python.py.