Project

Profile

Help

Bug #6351

open

Getting the line number is not available via the API on XdmNode

Added by O'Neil Delpratt 2 months ago. Updated about 2 months ago.

Status:
In Progress
Priority:
Normal
Assignee:
-
Category:
SaxonC API
Start date:
2024-02-17
Due date:
% Done:

90%

Estimated time:
Found in version:
12.4.2
Fixed in version:
Platforms:

Description

Reported by user here: https://stackoverflow.com/questions/78008394/how-do-i-get-the-line-numbers-of-a-saxonc-xpath-match/78009287#78009287

There is no straight forward way to get the line number on a XdmNode in C++, PHP and Python.

For example, the Python PyXdmNode (see: https://www.saxonica.com/saxon-c/doc12/html/saxonc.html#PyXdmNode) currently does not support getting line numbers as its Java equivalent class XdmNode: https://www.saxonica.com/html/documentation12/javadoc/net/sf/saxon/s9api/XdmNode.html#getLineNumber()

Actions #1

Updated by O'Neil Delpratt 2 months ago

The workaround is as follows:

        xpath_processor.set_context(xdm_item=item)
        print(item, xpath_processor.evaluate_single('saxon:line-number(.)'))
Actions #2

Updated by Martin Honnen 2 months ago

If line number gets exposed in the C++, Python and PHP API, I think the column number https://www.saxonica.com/html/documentation12/javadoc/net/sf/saxon/s9api/XdmNode.html#getColumnNumber() should be exposed as well, for completeness.

Actions #3

Updated by O'Neil Delpratt about 2 months ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 90

The methods getLinenumber() and getColumnNumber() have been added to the the XdmNode on C++, Python and PHP APIs.

Tests cases added. But still doing some testing on PHP.

Please register to edit this issue

Also available in: Atom PDF