
Stefan Behnel wrote:
Hi everyone,
Stefan Behnel wrote:
There is no API for it, but internally, we have this information for parsed trees, at least the line number - note that exceptions contain the line number already. So we could easily add a property "_line" to elements that returns the line number at which the element was parsed (*if* it was parsed). I don't like the fact so much that libxml2 puts a zero there
Sorry for the FUD. I just checked and found that libxml2 is actually smarter than I remembered from the last time I looked at this. It gives you a 1 for the first line in the parser. So it's actually easy to distinguish between "no line known" and "parsed in line x".
That makes "el.line" a perfectly working API. I called it "el.sourceline" though, to make it clearer that only parsing XML source produces it, not creating Elements in any other way. I also made it writable, just in case someone wants to add line numbers to generated trees or something.
Is there a file or resource name in there somewhere too? This would be nice to have if, say, you were using xinclude to combine elements from different sources.