Commit Graph

2 Commits

Author SHA1 Message Date
David Wendt 74912525ed Add ancestor iteration to XML nodes. 2020-06-20 19:26:41 -04:00
David Wendt 62a13cd7a6 Add the ability to `walk` through an XML tree.
This yields nodes as `Step`s. This allows keeping track of the structure of the tree as you walk through descendents, as each element will be yielded twice: both as a `Step::In` *and* as a `Step::Out`. Non-element nodes will be yielded once as a `Step::Around`.

I'm adding `walk` iteration specifically to avoid having to write certain methods recursively. Existing recursive callers of `children` should probably be updated to `walk` the tree and maintain a separate `Vec` stack.
2020-06-20 19:16:16 -04:00