translate.storage.xml_extract.xpath_breadcrumb.XPathBreadcrumb

Package translate :: Package storage :: Package xml_extract :: Module xpath_breadcrumb :: Class XPathBreadcrumb |
[hide private]
[frames] | no frames]

# Class XPathBreadcrumb

source code

A class which is used to build XPath-like paths as a DOM tree is walked. It keeps track of the number of times which it has seen a certain tag, so that it will correctly create indices for tags.

Initially, the path is empty. Thus >>> xb = XPathBreadcrumb() >>> xb.xpath ""

Suppose we walk down a DOM node for the tag <foo> and we want to record this, we simply do >>> xb.start_tag('foo')

Now, the path is no longer empty. Thus >>> xb.xpath foo[0]

Now suppose there are two <bar> tags under the tag <foo> (that is <foo><bar></bar><bar></bar><foo>), then the breadcrumb will keep track of the number of times it sees <bar>. Thus

    >>> xb.start_tag('bar')
    >>> xb.xpath
    foo[0]/bar[0]
    >>> xb.end_tag()
    >>> xb.xpath
    foo[0]
    >>> xb.start_tag('bar')
    >>> xb.xpath
    foo[0]/bar[1]

Instance Methods | [hide private]
__init__(self) x.__init__(...) initializes x; see x.__class__.__doc__ for signature | source code
start_tag(self, tag) | source code
end_tag(self) | source code
_get_xpath(self) | source code
Inherited from `object`: `__delattr__`, `__getattribute__`, `__hash__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__repr__`, `__setattr__`, `__str__`

Properties | [hide private]
| xpath
Inherited from `object`: `__class__`

Method Details | [hide private]

### __init__(self) (Constructor) | source code
x.__init__(...) initializes x; see x.__class__.__doc__ for signature Overrides: object.__init__ (inherited documentation)

### start_tag(self, tag) | source code
Decorators: `@accepts(Self(), unicode)`

Property Details | [hide private]

### xpath Get Method: _get_xpath(self)