Hi,
issue is related to changes in uROMSXMLImpl.pas, starting with release 1533, specifically here:
function TROMSXMLNode.GetNodesByName(const aNodeName: UnicodeString): IXMLNodeList;
var
l_list: IXMLDOMNodeList;
begin
l_list := fNode.selectNodes(aNodeName);
if (l_list <> nil) and (l_list.length > 0) then
Result := TROMSXMLNodeList.Create(l_list, fDoc)
else
Result := nil;
end;
Starting with 1533, function returns NIL if no node was found… releases before 1533 returns valid not-NIL interface, where Count=0. Due this, AV error is raised in Hydra.RO.RODLReader.pas, here:
procedure THYRODLReader.MergeRODLs(var MainRODL: string; const SubRODLs: array of string);
..
procedure ReadNode(AMainRootNode, ARootNode: IXMLNode; s_NodeItems, s_NodeItem: wideString{$IFDEF DEBUGMODE_MERGERODL}; AErrorNode, ADuplicateNode: IXMLNode{$ENDIF});
begin
..
MainList := MainSectionNode.GetNodesByName(s_NodeItem);
//FIX >>>
if MainList<>Nil then
//<<< FIX
for j := 0 to MainList.Count - 1 do
if MainList.Nodes[j].GetAttributeValue(s_NodeName, '') = nodeName then begin
Node := MainList.Nodes[j];
Break;
end;
if Node = nil then
AddNode(MainSectionNode, List.Nodes[i])
..
end
..
end;
Regards from Prague,
Jan