Enable modification of captions on columns
One thing to note here is that you can have captions both in the TDS and in the TWB. The TWB seems to win out MOST OF THE TIME, but if I remember correctly, calculations defined in the TDS cannot be re-aliased by the TWB. That may have changed in a more recent release.
I used a separate TableauColumns object so be able to look across, because the set of column nodes isn't really a collection but just a bunch of discrete nodes appended into the datasource node.
self.columns = None
# Possible, though unlikely, that there would be no columns
if self.xml.getroot().find(u'column') is not None:
columns_list = self.xml.getroot().findall(u'column')
self.columns = TableauColumns(columns_list, self.logger)
which then loads into this object: [https://github.com/bryantbhowell/tableau_tools/blob/master/tableau_documents/tableau_document.py]
The main thing i was trying to accomplish was to look up either the Caption or the real Field Name, because sometimes Tableau Desktop auto-aliases things and then other times it doesn't.