2011-09-21 49 views
1

我正在尋找一種方法來一個XML的文檔中找到一個元素的準確位置的元素的確切位置。我用XOM解析我的文檔並按通常的方式處理它。棘手的是,在XML文檔中,嵌入了一些腳本(只是文本節點),並且在腳本失敗的情況下(解析,邏輯等),我想報告用戶(寫入這些腳本)的確切行號該劇本已被宣佈。找到一個XML的文檔

最理想的方法是這樣的:

int scriptLine = someElement.getFirstChildElement("script").getDeclaringLineNumber(); 

可悲的是我無法找到一個方法來做到這一點,有或沒有XOM。如果有人有想法或已經做過這樣的事情 - 我可以使用一些幫助。 :-)

+0

如果任何人絆倒在這個問題,並具有XOM完全相同的問題,我擴展XOM一點能夠訪問定位器對象中,可用於提取的行和列號NodeFactories。你可以在這裏找到它:https://github.com/Malax/XOM – Malax

回答

1

回來的路上我這樣做是用JDOM。通過擴展SAXBuilder並攔截startElement()和endElement()回調,可以使用SAX定位器使用行號信息更新專用元素實現。該代碼仍然應該圍繞....是這裏:

http://jdom.org/dist/binary/jdom-contrib-1.1.1.zip

src目錄搜索LineNumberSAXBuilder。

我相信XOM具有可以以相同的方式進行延伸的NodeFactory。

+0

這是一個很好的提示!我會進一步調查,並會接受這個答案,如果它導致我的解決方案。無論如何Upvoted。 :) – Malax