'Read styles from the shared style table'

def _parse_xfs(self, node):

    _style_ids = []
    xfs = safe_iterator(node, ('{%s}xf' % SHEET_MAIN_NS))
    for xf in xfs:
        style = StyleArray.from_tree(xf)
        al = xf.find(('{%s}alignment' % SHEET_MAIN_NS))
        if (al is not None):
            alignment = Alignment(**al.attrib)
            style.alignmentId = self.alignments.add(alignment)
        prot = xf.find(('{%s}protection' % SHEET_MAIN_NS))
        if (prot is not None):
            protection = Protection(**prot.attrib)
            style.protectionId = self.protections.add(protection)
        numFmtId = int(xf.get('numFmtId', 0))
        if (numFmtId in self.custom_number_formats):
            format_code = self.custom_number_formats[numFmtId]
            style.numFmtId = (self.number_formats.add(format_code) + 164)
        _style_ids.append(style)
    return IndexedList(_style_ids)
