Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/pilas/xmlreader.py
diff options
context:
space:
mode:
Diffstat (limited to 'pilas/xmlreader.py')
-rw-r--r--pilas/xmlreader.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/pilas/xmlreader.py b/pilas/xmlreader.py
new file mode 100644
index 0000000..02fa8d3
--- /dev/null
+++ b/pilas/xmlreader.py
@@ -0,0 +1,33 @@
+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
+
+ 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)]
+
+
+def makeRootNode(xmlFileName):
+ """Creates the root node from an XML file."""
+ return XmlNode(minidom.parse(xmlFileName))
+