Message151247
Problem:
Locator methods return the location where the event starts, not where it ends.
Locator line numbers start at 1, Locator column numbers can be 0.
Proposal:
Adapt documentation.
From the docs:
Instances of Locator provide these methods:
Locator.getColumnNumber()
Return the column number where the current event ends.
Locator.getLineNumber()
Return the line number where the current event ends
My Test:
import xml.sax
data = b"""<main>
<sub
attr="1"
id="name"
>
<subsub />
</sub>
</main>"""
class MyHandler(xml.sax.handler.ContentHandler):
def startElement(self, name, attrs):
if name == "sub":
print("open", name, self._locator.getLineNumber(), self._locator.getColumnNumber())
def endElement(self, name):
if name == "sub":
print("close", name, self._locator.getLineNumber(), self._locator.getColumnNumber())
xml.sax.parseString(data, MyHandler())
Output:
open sub 2 4
close sub 7 4 |
|
Date |
User |
Action |
Args |
2012-01-14 12:02:15 | patrick.vrijlandt | set | recipients:
+ patrick.vrijlandt, docs@python |
2012-01-14 12:02:14 | patrick.vrijlandt | set | messageid: <1326542534.95.0.205057982858.issue13784@psf.upfronthosting.co.za> |
2012-01-14 12:02:14 | patrick.vrijlandt | link | issue13784 messages |
2012-01-14 12:02:13 | patrick.vrijlandt | create | |
|