[r78]: / branches / timvh / library / FB_XmlControl / NextTag / svnobj  Maximize  Restore  History

Download this file

29 lines (28 with data), 5.0 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
iSelectEnd := Buffer.Find(sSearchString := '>' , udiStartPos := iSelectStart);
iSelectTagClose := Buffer.Find( sSearchString := '/' , udiStartPos := iSelectStart);
(* Check wether range is valid *)
	sTag := Buffer.Copy( udiStart:= iSelectStart + 1, udiEnd:= iSelectEnd );
	(* check wether a Parameter is within the range *)
	IF iSelectEnd < iSelectStartPara THEN
		NextTag := Buffer.Copy(udiStart:= iSelectStart + 1, udiEnd:= iSelectStartPara );
	END_IF;
    // create path
        ; // skip when it is a prolog, or when it is comment or CDATA
	ELSIF iSelectTagClose = iSelectStart + 1 THEN
		(* End Tag *)
		(* Extinguish last Tag *)
		iSelect := TagListSeek.FindBack(sSearchString := '/' );
		TagListSeek.CutOff(udistartpos := iSelect);
	ELSIF iSelectTagClose = iSelectEnd - 1 THEN
		(* Tag with end Tag *)
		(* save interleaving *)
		TagListSeek.Append := '/' ;
		TagListSeek.Append := NextTag ;
		iSelect := TagListSeek.FindBack ( sSearchString := '/' );
		TagListSeek.CutOff ( udistartpos:= iSelect );
		(* save interleaving  *)
ELSE
	(* no tag found *)
	iSearchPos := Buffer.Length ;
	NextTag := '' ;
END_IF;