Welcome, guest | Sign In | My Account | Store | Cart
from xml.dom import minidom

class XmlNode:
   
"""An XML node represents a single field in an XML document."""

   
def __init__(self, domElement):
       
"""Construct an XML node from a DOM element."""
       
self.elem = domElement
   
   
@classmethod
   
def makeRoot(cls, xmlFileName):
       
return cls(minidom.parse(xmlFileName))

   
def getData(self):
       
"""Extract data from a DOM node."""
       
for child in self.elem.childNodes:
           
if child.nodeType == child.TEXT_NODE:
               
return str(child.data)
       
return None

   
def getAttributeValue(self, name):
       
"""Returns the value of the attribute having the specified name."""
       
return str(self.elem.attributes[name].value)

   
def getChild(self, tag):
       
"""Returns the first child node having the specified tag."""
       
return XmlNode(self.elem.getElementsByTagName(tag)[0])
   
   
def getChildren(self, tag):
       
"""Returns a list of child nodes having the specified tag."""
       
return [XmlNode(x) for x in self.elem.getElementsByTagName(tag)]

Diff to Previous Revision

--- revision 1 2010-11-03 18:28:10
+++ revision 2 2011-05-03 23:06:30
@@ -7,6 +7,10 @@
         
"""Construct an XML node from a DOM element."""
         
self.elem = domElement
     
+    @classmethod
+    def makeRoot(cls, xmlFileName):
+        return cls(minidom.parse(xmlFileName))
+
     
def getData(self):
         
"""Extract data from a DOM node."""
         
for child in self.elem.childNodes:
@@ -25,8 +29,3 @@
     
def getChildren(self, tag):
         
"""Returns a list of child nodes having the specified tag."""
         
return [XmlNode(x) for x in self.elem.getElementsByTagName(tag)]
-
-
-def makeRootNode(xmlFileName):
-    """Creates the root node from an XML file."""
-    return XmlNode(minidom.parse(xmlFileName))

History