# HG changeset patch # User paulb # Date 1125098387 0 # Node ID e5d9db796fa76c4372fab23f88da32513c7dbcaf # Parent a191a456cc5c7277e468cec0eded0de8d790631f [project @ 2005-08-26 23:19:47 by paulb] Added a last_row method for the creation of subtables. diff -r a191a456cc5c -r e5d9db796fa7 XSLTools/XMLTable.py --- a/XSLTools/XMLTable.py Fri Aug 26 23:19:28 2005 +0000 +++ b/XSLTools/XMLTable.py Fri Aug 26 23:19:47 2005 +0000 @@ -47,16 +47,20 @@ else: self.root = self.doc.xpath("*")[0] + # Remember the last row element. + + self.last_row_element = None + def add_rows(self, rows): for row in rows: self.add_row(row) def add_row(self, row, index=-1, row_element_name="row", use_key_as_element_name=0): - row_element = self.doc.createElementNS(self.ns, self.prefix+row_element_name) + self.last_row_element = self.doc.createElementNS(self.ns, self.prefix+row_element_name) if index == -1: - self.root.appendChild(row_element) + self.root.appendChild(self.last_row_element) else: - self.root.insertBefore(row_element, self.root.xpath("*[%s]" % (index + 1))[0]) + self.root.insertBefore(self.last_row_element, self.root.xpath("*[%s]" % (index + 1))[0]) # Permit dictionaries. @@ -67,7 +71,7 @@ else: column_element = self.doc.createElementNS(self.ns, self.prefix+"column") column_element.setAttributeNS(self.ns, self.prefix+"name", unicode(name)) - row_element.appendChild(column_element) + self.last_row_element.appendChild(column_element) text = self.doc.createTextNode(unicode(value)) column_element.appendChild(text) @@ -76,10 +80,16 @@ else: for column in row: column_element = self.doc.createElementNS(self.ns, self.prefix+"column") - row_element.appendChild(column_element) + self.last_row_element.appendChild(column_element) text = self.doc.createTextNode(unicode(column)) column_element.appendChild(text) + def last_row(self): + if self.last_row_element is not None: + return Converter(self.ns, self.prefix, self.doc, self.last_row_element) + else: + return None + if __name__ == "__main__": from rdflib.TripleStore import TripleStore import sys