Currently I do the following, and then use the resulting tables for the traversing, its not perfect but for the most part it is called when people first open the history or import file and when they click the refresh button. Finding out that a slight change in data layout will bypass this problem will hopefully cut down on the amount of code I am needing to use. Technically accountWide also includes the characterWide values as well but it makes it clearer that I am only looking at accountWide values.
Lua Code:
local nodeInfo = {}
local itemInfo = {}
for default,sv in pairs(XrysGatherer_SavedVariables) do
for account,accountv in pairs(sv) do
for accountWide,acWideV in pairs(accountv) do
for i,v in pairs(acWideV) do
if i == "ItemData" then itemInfo = v end
if i == "NodeData" then nodeInfo = v end
end
end
end
end