Daniel, It was kind of you to respond, and your response was a model of clarity. You correctly surmised from my awkward framing of the question, that what I wanted was a list of sibling elements between one named anchor and the next. My problem was, in part, that I still don't think in terms of functional programming, thus, the function defs you proposed are very helpful models for me. I do, however, still need to work out how to make is_anchor() return true only if the anchor name attribute satisfies a given regex. Starting with your model, I'm sure I'll be able to figure this out.
Thanks so much for your time! Jon > > You might find the following definitions helpful: > > ############################################################# > def get_siblings_to_next_anchor(anchor): > """Anchor Tag -> element list > > Given an anchor element, returns all the nextSiblings elements up to > (but not including) the next anchor as a list of either Tags or > NavigatableStrings.""" > > elt = anchor.nextSibling > results = [] > while (elt != None) and (not is_anchor(elt)): > results.append(elt) > elt = elt.nextSibling > return results > > > def is_anchor(elt): > """element -> boolean > Returns true if the element is an anchor Tag.""" > > if isinstance(elt, NavigableString): > return False > else: > return elt.name == 'a' > ############################################################# _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor