Hi,
i work with the PyXML modul an use minidom to process xml data:
In need to get data from text nodes and found an example of functionality in the book O'Reilly-book from C.Jones: Python & XML (S.101)


# searches the year and the defoliation value in the instance file and copies the
# element defoliation
def copyDynamicProperties(self):
"""copies the dyn properties from a GML3 instance file."""
# looks for elements with the tag defol
defolNodelist = self.dom.getElementsByTagName("defol")
# iterating over all <defol>-eles
for node in defolNodelist:
# node list defolChildren
defolChildren = node.childNodes
# reads value cat in instance-file to member var self.cat
cat = self.findTextNodes(defolChildren,"cat")
print cat
#------------------------------------------------------------
# finds the data of the textNode of the elementNode with the
# tag theTagName (adapted from Book Python&XML, S.101)
def findTextNodes(self,theNodeList,theTagName):
#init returnValue
for subnode in theNodeList:
if subnode.nodeType == subnode.ELEMENT_NODE:
if subnode.tagName == theTagName:
# call function again to get children
self.findTextNodes(subnode.childNodes,theTagName)
#
elif subnode.nodeType == subnode.TEXT_NODE:
print "text-node:", subnode.data
return subnode.data


Output:
text-node: 1
text-node:

cat:



my Problem is now that
the function findTextNodes now is a recursive one, which delivers 2 return -values:
the correct value of the text-node and a non-empty string (it looks empty but has 7 spaces )
How can i only get the correct text-value back or how can prevent the string to overwrite the correct value?


( i tried to do this by only to return if subnode.data.isdigit() ist true and othter workarounds, but...(:( )

Thanks Dani




_______________________________________________ XML-SIG maillist - [EMAIL PROTECTED] http://mail.python.org/mailman/listinfo/xml-sig

Reply via email to