homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Documentation of xml.sax.xmlreader: Locator.getLineNumber() and Locator.getColumnNumber()
Type: behavior Stage: resolved
Components: Documentation, XML Versions: Python 3.6, Python 3.5, Python 2.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: docs@python Nosy List: BreamoreBoy, christian.heimes, docs@python, emilyemorehouse, patrick.vrijlandt, python-dev, r.david.murray
Priority: normal Keywords: patch

Created on 2012年01月14日 12:02 by patrick.vrijlandt, last changed 2022年04月11日 14:57 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
13784.patch emilyemorehouse, 2016年06月02日 18:54 review
Messages (5)
msg151247 - (view) Author: patrick vrijlandt (patrick.vrijlandt) Date: 2012年01月14日 12:02
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
msg222156 - (view) Author: Mark Lawrence (BreamoreBoy) * Date: 2014年07月03日 08:17
@patrick please accept our apologies for the delay in getting back to you.
msg266913 - (view) Author: Emily Morehouse (emilyemorehouse) * (Python committer) Date: 2016年06月02日 18:54
The reported behavior has been verified -- the documented behavior is indeed incorrect for both Locator.getColumnNumber() and Locator.getLineNumber(). The beginning line and column numbers are returned, not the end.
This has been tested and verified for Python 2.7, Python 3.5.1 and a local build of the current default branch.
msg266924 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2016年06月02日 19:19
Thanks Emily. For some reason the auto update of the tracker doesn't seem to have worked. Maybe it is just delayed, but in case, the commit hashes are 2.7 97b76fe183f4, 3.5 9d6a9e2ae18b, and 3.6 cce04851d2e2.
msg266927 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2016年06月02日 19:22
New changeset 97b76fe183f4 by R David Murray in branch '2.7':
#13784: fix xml.sax.reader getColumn/LineNumber docs.
https://hg.python.org/cpython/rev/97b76fe183f4
New changeset 9d6a9e2ae18b by R David Murray in branch '3.5':
#13784: fix xml.sax.reader getColumn/LineNumber docs.
https://hg.python.org/cpython/rev/9d6a9e2ae18b
New changeset cce04851d2e2 by R David Murray in branch 'default':
Merge: #13784: fix xml.sax.reader getColumn/LineNumber docs.
https://hg.python.org/cpython/rev/cce04851d2e2 
History
Date User Action Args
2022年04月11日 14:57:25adminsetgithub: 57993
2016年06月02日 19:22:36python-devsetnosy: + python-dev
messages: + msg266927
2016年06月02日 19:19:33r.david.murraysetstatus: open -> closed

versions: - Python 3.2, Python 3.3, Python 3.4
nosy: + r.david.murray

messages: + msg266924
resolution: fixed
stage: resolved
2016年06月02日 18:54:05emilyemorehousesetfiles: + 13784.patch
versions: + Python 2.7, Python 3.2, Python 3.3, Python 3.6
nosy: + emilyemorehouse

messages: + msg266913

keywords: + patch
2014年07月03日 08:17:01BreamoreBoysetnosy: + christian.heimes, BreamoreBoy

messages: + msg222156
versions: + Python 3.4, Python 3.5, - Python 3.2
2012年01月14日 12:02:14patrick.vrijlandtcreate

AltStyle によって変換されたページ (->オリジナル) /