XMLDOCUMENT — различия между версиями
Материал из Фабиус wiki
Hisava (обсуждение | вклад) м |
Hisava (обсуждение | вклад) м |
||
| Строка 23: | Строка 23: | ||
end; | end; | ||
end; | end; | ||
| + | |||
| + | = Пример = | ||
| + | |||
| + | fld := ' _1,C,200; ' | ||
| + | aa := IdHttpGet( local_host + ':' + utm_port + '/opt/out' ) | ||
| + | // сохраняем входящие сообщения в файле out.xml | ||
| + | WriteTxtFile( { aa }, 'out.xml', TempPath, true ) | ||
| + | |||
| + | doc := XmlDocument( Nice_Path( TempPath ) + 'out.xml' ) | ||
| + | node := xmlNode( doc ) | ||
| + | |||
| + | _ := CreateTmpFile( fld, '_', ~IsFreeDel := true ) | ||
| + | |||
| + | for i := 0 to XmlNodeProp( node, "ChildNodeCount" ) - 1 | ||
| + | aa := XmlNodeProp( XmlNodeProp( node, "ChildNodes", i ), "NODEVALUE" ) | ||
| + | aa := Right( aa, Len( aa ) - at( 'http', aa ) - 6 ) | ||
| + | if !Empty( aa ) | ||
| + | ( _ )->( DbAppend() ) | ||
| + | ( _ )->_1 := aa | ||
| + | endif | ||
| + | next | ||
| + | |||
= Смотрите также = | = Смотрите также = | ||
[[XMLNode]] | [[XMLNode]] | ||
Версия 13:30, 27 апреля 2016
XMLDocument - это функция, описанная в файле QrAddFn2.pas
XMLDocument( xmlfile )
Чтение XML файла
Полный текст функции
type
TQrEvXMLDocument=class(TQREvElementFunction)
public
function Calculate: TQREvResult; override;
end;
function TQrEvXMLDocument.Calculate: TQREvResult;
begin
Result := NilValue;
if (ArgList.Count >= 1) and (Argument(0).Kind = ResString) then
begin
Result.Kind := ResObject;
Result.ObjResult:=TXMLDocument.Create(Application);
TXMLDocument(Result.ObjResult).LoadFromFile(Argument(0).StrResult);
end;
end;
Пример
fld := ' _1,C,200; '
aa := IdHttpGet( local_host + ':' + utm_port + '/opt/out' )
// сохраняем входящие сообщения в файле out.xml
WriteTxtFile( { aa }, 'out.xml', TempPath, true )
doc := XmlDocument( Nice_Path( TempPath ) + 'out.xml' ) node := xmlNode( doc )
_ := CreateTmpFile( fld, '_', ~IsFreeDel := true )
for i := 0 to XmlNodeProp( node, "ChildNodeCount" ) - 1
aa := XmlNodeProp( XmlNodeProp( node, "ChildNodes", i ), "NODEVALUE" )
aa := Right( aa, Len( aa ) - at( 'http', aa ) - 6 )
if !Empty( aa )
( _ )->( DbAppend() )
( _ )->_1 := aa
endif
next