luki123luki123
Place Game
Wiek: 28 Na forum: 5275 dni Posty: 1948
Nick w MP: LuKiO
Piwa : 6101
[LLL] - LuKiO Lua Learning
XML
Witaj
[you]
, w tym poradniku wyt?umacz? funkcj? XML jakie wyr??niamy w j?zyku Lua. R?wnie? podam przyk?ad zastosowania w ka?dej funkcji wraz z ni?ej napisanym komentarzem.
xmlCopyFile - funkcja s?u??ca do kopiowania plik?w xml. Aby plik zosta? skopiowany musi zosta? wywo?ana funkcja xmlSaveFile
xmlCopyFile ( xmlCopy , xmlNew )
xmlCopy - plik wraz z lokalizacj? katalogu. ( "katalog/plik.xml" )
xmlNew - plik kt?ry zosta? skopiowany
Przyk?ad :
local plik = xmlLoadFile ( "file.xml" ) --? adowanie pliku
if plik then -- Sprawdzanie czy skrypt za ? adowa ? plik
local new = xmlCopyFile ( plik , "copy.xml" ) -- Kopiowanie pliku
if new then -- Sprawdzanie czy uda ? o si ? kopiowanie
xmlSaveFile ( new ) -- Zapisywanie skopiowanego pliku
end -- Zamykanie ifu kopiowania pliku
xmlUnloadFile ( plik ) -- Roz ?? czanie pliku g ?? wnego
end -- Zamykanie ifu pliku g ?? wnego
Plik zostanie skopiowany w g??wnym folderze gdzie znajduje si? plik (meta.xml) pod nazw? ( copy.xml ).
xmlCreateFile - funkcja tworz?ca nowy plik xml. Plik nie zostanie skopiowany dop?ki nie wyow?amy funkcji xmlSaveFile .
xmlCreateFile ( plikName , nodeName )
plikName - nazwa pliku wraz z lokalizacj? katalogu gdzie zostanie stworzony. ( "katalog/plik.xml" )
nodeName - nazwa g??wnego w?z?a
Przyk?ad :
local plik = xmlCreateFile ( "plik.xml" , "data" ) -- Tworzenie nowego pliku xml
if plik then -- Sprawdzanie czy zosta ? stworzony plik XML
xmlSaveFile ( plik ) -- Zapisywanie nowego pliku XML
end -- Zamykanie ifu sprawdzania czy zosta ? stworzony nowy plik
Przyk?ad tworzy nowy plik xml pod nazw? "plik" z g??wnym w?z?em "data".
xmlDestroyNode - funkcja s?u?y do usuwanie w?z?a.
node - w?ze? jaki chcemy usun?? ( obiekt xmlNode )
Przyk?ad :
addEventHandler ( "onResourceStart" , resourceRoot , -- Rozpocz ? cie eventu po starcie skryptu
function() -- Rozpocz ? cie funkcji
local xml = xmlCreateFile ( "plik.xml" , "root" ) -- Tworzenie nowego pliku XML o nazwie "plik" i g ?? wnym w ? zie "root"
if xml then -- Sprawdzenie czy zosta ? stworzony nowy plik XML
xmlCreateChild ( xml , "data" ) -- Stworzenie nowego pod w ? z ? a "data"
xmlSaveFile ( xml ) -- Zapisywanie pliku XML
xmlUnloadFile ( xml ) -- Roz ?? czanie pliku XML
end -- Zamykanie ifu sprawdzania czy zosta ? stworzony nowy plik XML
end -- Zamykanie funkcji
) -- Zamykanie eventu
addCommandHandler ( "usun" , -- Tworzenie kom ? ndy
function ( plr ) -- Rozpocz ? cie funkcji
local plik = xmlLoadFile ( "plik.xml" ) -- Za ? adowanie pliku XML
if plik then -- Sprawdzenie czy zosta ? za ? adowany plik XML
local data = xmlFindChild ( xml , "data" , 0 ) -- Znalezienie pierwszego w ? z ? a
if data then -- Sprawdzenie czy zosta ? odnaleziony 1 w ? ze ?
xmlDestroyNode ( data ) -- Usuwanie znalezionego w ? z ? a
xmlSaveFile ( plik ) -- Zapisywanie pliku XML
xmlUnloadFile ( plik ) -- Roz ?? czanie pliku XML
end -- Zamykanie ifu odnalezienia w ? z ? a
end -- Zamykanie ifu Sprawdzania odczytu pliku XML
end -- Zamykanie funkcji
) -- Zamykanie komendy
xmlLoadFile - funkcja s?u??ca do za?adowaniu pliku xml.
xmlFile - plik wraz z lokalizacj? katalogu. ( "katalog/plik.xml" )
Przyk?ad :
addEventHandler ( "onResourceStart" , resourceRoot , -- Rozpocz ? cie eventu po starcie skryptu
function() -- Rozpocz ? cie funkcji
local plik = xmlLoadFile ( "plik.xml" ) -- ? adowanie pliku XML
if plik then -- Sprawdzenie czy zosta ? za ? adowany plik XML
outputChatBox ( "Plik zosta? za?adowany" ) -- Wy ? wietlenie informacji na czacie
xmlUnloadFile ( xml ) -- Roz ?? czenie pliku XML
end -- Zamykanie ifu sprawdzania za ? adowanie pliku
end -- Zamykanie funkcji
)-- Zamykanie eventu
Powy?szy przyk?ad ??czy si? z plikiem "plik.xml" i je?eli zosta? on za?adowany zostaje wys?ana informacja na chacie i zostaje roz??czony.
xmlNodeGetAttribute - funkcja s?u?y do pobierania warto?ci z kontentego argumentu w?z?a xml.
xmlNodeGetAttribute ( xmlNode , name )
xmlNode - odczytany plik lub w?ze? xml
name - nazwa argumentu w?z?a
Przyk?ad :
Kod: <xml> <!-- W?ze? g??wny -->
<data arg1="1" arg2="2" /> <!-- Pod w?ze? -->
</xml> <!-- Koniec w?z?a g??wnego -->
local plik = xmlLoadFile ( "plik.xml" ) -- za ? adowanie pliku XML
if plik then -- Sprawdzenie za ? adowanie pliku XML
local data1 = xmlNodeGetAttribute ( plik , "data1" ) -- Pobieranie atrybutu w ? z ? a
local data2 = xmlNodeGetAttribute ( plik , "data2" ) -- Pobieranie atrybutu w ? z ? a
outputChatBox ( "data1: " .. data1 .. " data2 :" .. data2 ) -- Wy ? wietlenie informacji na czacie
xmlUnloadFile ( plik ) -- Roz ?? czenie pliku XML
end -- Zamykanie ifa sprawdzenia za ? adowania pliku
Przyk?ad ??czy si? z plikiem "plik.xml" oraz odczytuje z w?z?a "data" warto?ci argument?w "data1" i "data2" oraz wy?wietla je na czacie. A nast?pnie roz??cza si? z plikiem "plik.xml".
xmlNodeSetAttribute - funkcja s?u?y do zmiany warto?ci kontentego argumentu z w?z?a xml.
xmlNodeSetAttribute ( xmlNode , name , value )
xmlNode - odczytany plik lub w?ze? xml
name - nazwa argumentu w?z?a
value - warto?? argumentu w?z?a
Przyk?ad :
Kod: <xml>
<data arg1="1" arg2="2" />
</xml>
local plik = xmlLoadFile ( "plik.xml" ) -- ? adowanie pliku XML
if plik then -- Sprawdzenie za ? adowania pliku XML
xmlNodeSetAttribute ( plik , "data1" , "zmienione" ) -- Zmiana atrybutu w ? z ? a
outputChatBox ( "Zosta?a zmieniona warto?? argumentu 'data1' na warto?? 'zmienione'" ) -- wy ? wietlenie informacji na czacie
xmlSaveFile ( plik ) -- Zapisywanie pliku XML
xmlUnloadFile ( plik ) -- Roz ?? czenie pliku XML
end
Przyk?ad ??czy si? z plikiem "plik.xml" oraz zmienia warto?? w?z?a data, argumentu "data1" z warto?ci "1" na "zmienione" oraz wy?wietla informacje na czacie. A nast?pnie plik zapisuje i roz??cza si? z nim.
xmlNodeGetValue - funkcja pobiera warto?? z pomi?dzy znacznik?w w?z?a ( <data>wartosc</data> )
xmlNodeGetValue ( xmlNode )
xmlNode - odczytany plik lub w?ze? xml.
Przyk?ad :
Kod: <xml>
<data>wartosc</data>
</xml>
local plik = xmlLoadFile ( "plik.xml" ) -- ? adowanie pliku XML
if plik then -- Sprawdzenie za ? adowania pliku XML
local data = xmlNodeGetValue ( plik ) -- Pobierania warto ? ci pomi ? dzy znacznik ? w w ? z ? a
outputChatBox ( "Warto?? z pomi?dzy znacznik?w to: " .. data ) -- Wy ? wietlenie informacji na czacie z pobran ? warto ? ci ?
xmlUnloadFile ( plik ) -- Roz ?? czenie pliku XML
end -- Zamykanie ifa sprawdzenia za ? adowania pliku
Przyk?ad odczytuje warto?? z pomi?dzy znacznik?w w?z?a "data" i wy?wietla na czacie. A nast?pnie roz??cza si? z plikiem "plik.xml"
xmlNodeSetValue - funkcja zmienia warto?? z pomi?dzy znacznik?w w?z?a ( <data>wartosc</data> )
xmlNodeSetValue ( xmlNode , value [, setCDATA ] )
xmlNode - odczytany plik lub w?ze? xml.
value - warto?? na jak? ma zosta? zmieniona.
setCDATA - warto?? wskazuje czy chcesz, aby warto?? by?a umieszczona wewn?trz znacznik?w CDATA. Argument nie jest obowi?zkowy!
Przyk?ad :
Kod: <xml>
<data>wartosc</data>
</xml>
local plik = xmlLoadFile ( "plik.xml" ) -- Za ? adowanie pliku XML
if plik then -- Sprawdzenie za ? adowania pliku XML
xmlNodeSetValue ( plik , "zmieniona" ) -- Zmienienie warunku pomi ? dzy znacznikami w ? z ? a
outputChatBox ( "Warto?? z pomi?dzy znacznik?w zosta?a zmieniona !" ) -- Wy ? wietlenie informacji na czacie
xmlSaveFile ( plik ) -- Zapisywanie pliku XML
xmlUnloadFile ( plik ) -- Roz ? adowanie pliku XML
end -- Zako ? czenie warunku sprawdzenia za ? adowania pliku
Przyk?ad zmienia warto?? z pomi?dzy znacznik?w w?z?a "data" na warto?? "zmieniona"
xmlSaveFile - funkcja s?u?y do zapisywania plik?w xml.
xmlFile - plik xml kt?ry zosta? stworzony/za?adowany.
Przyk?ad :
local plik = xmlCreateFile ( "plik.xml" , "data" ) -- Stworzenie nowego pliku XML
if plik then -- Sprawdzenie stworzenia nowego pliku XML
xmlSaveFile ( plik ) -- Zapisywanie nowego pliku XML
outputChatBox ( "Zosta? stworzony plik 'plik.xml' i zosta? on r?wnie? zapisany !" ) -- Wy ? wietlenie informacji na czacie
end -- Zako ? czenie warunku sprawdzenia stworzenia nowego pliku XML
Przyk?ad tworzony nowy plik "plik.xml" zapisuje go oraz wy?wietla informacje na czacie.
xmlUnloadFile - funkcja s?u?y do rozwi?zania si? z plikiem xml, kt?ry zosta? najpierw za?adowany przez skrypt.
xmlFile - plik xml kt?ry zosta? stworzony/za?adowany.
Przyk?ad :
local plik = xmlLoadFile ( "plik.xml" ) -- Za ? adowanie pliku XML
if plik then -- Sprawdzenie za ? adowania pliku XML
xmlUnloadFile ( plik ) -- Roz ?? czenie pliku XML
outputChatBox ( "Zosta? za?adowany plik xml i r?wnie? zosta? on roz??czony." ) -- Wy ? wietlenie informacji na czacie
end -- Zamykanie warunku sprawdzenia za ? adowania pliku XML
Przyk?ad ??czy si? z plikiem xml "plik.xml" oraz roz??cza go i wy?wietla informacje na czacie.
xmlCreateChild - funkcja s?u?y do stworzenia nowego podrz?dnego w?z?a.
xmlCreateChild ( xmlNode , name )
xmlNode - odczytany plik lub w?ze? xml.
name - nazwa w?z?a.
Przyk?ad :
local plik = xmlLoadFile ( "plik.xml" ) -- Za ? adowanie pliku XML
if plik then -- Sprawdzenie za ? adowania pliku XML
xmlCreateChild ( plik , "data" ) -- Tworzenie nowego pod w ? z ? a
xmlSaveFile ( plik ) -- Zapisywanie pliku XML
xmlUnloadFile ( plik ) -- Roz ?? czenie pliku XML
outputChatBox ( "Zosta? za?adowany plik xml i r?wnie? zosta? on roz??czony." ) -- Wy ? wietlenie informacji na czacie
end -- Zako ? czenie warunku sprawdzenia za ? adowania pliku XML
Przyk?ad ??czy si? z plikiem xml a nast?pnie tworzy nowy w?ze? podrz?dny pod nazw? "data" i zostaje on zapisywany, roz??czony i zostaje informacja na czacie wy?wietlona.
xmlFindChild - funkcja s?u?y do znajdowania w?z?a po nazwie
xmlFindChild ( xmlNode , name , index )
xmlNode - odczytany plik lub w?ze? xml.
name - nazwa w?z?a
index - warto?? od kt?rego w?z?a chcesz zacz?? odczytywanie. Je?eli od 5 to wpisujesz 4. A je?eli od pocz?tku to 0.
Przyk?ad :
Kod: <xml>
<data>
<value>1</value>
</data>
</xml>
local plik = xmlLoadFile ( "plik.xml" ) -- za ? adowanie pliku XML
if plik then -- Sprawdzenie za ? adowania pliku XML
local data = xmlFindChild ( plik , "data" , 0 ) -- Odnalezienie 1 w ? z ? a
local value = xmlFindChild ( node , "value" , 0 ) -- Odnalezienie 1 pod w ? z ? a
local wartosc = xmlNodeGetValue ( value ) -- Pobranie warto ? ci z pomi ? dzy znacznik ? w w ? z ? a
outputChatBox ( "Warto?c z pomi?dzy znacznik?w value to: " .. wartosc ) -- wy ? wietlenie informacji z warto ? ci ? na czacie
xmlUnloadFile ( plik ) -- Roz ?? czenie pliku XML
end -- Zako ? czenie sprawdzenia za ? adowania pliku XML
Przyk?ad ??czy si? z plikiem "plik.xml" nast?pnie znajduje w?ze? "data", potem w?ze? "value". Nast?pnie odczytuje warto?? z pomi?dzy znaczk?w "value" i wy?wietla informacje na czasie o jej warto?ci. Na sam koniec roz??cza si? z plikiem xml.
xmlNodeGetAttributes - odczytuje wszystkie warto?ci w?z?a.
xmlNodeGetAttributes ( xmlNode )
xmlNode - odczytany plik lub w?ze? xml.
Przyk?ad :
Kod: <xml>
<data arg1="1" arg2="2" />
</xml>
local plik = xmlLoadFile ( "plik.xml" ) -- Za ? adowanie pliku XML
if plik then -- Sprawdzenie za ? adowania pliku XML
local data = xmlFindChild ( plik , "data" , 0 ) -- Odnalezienie nie 1 w ? z ? a
if data then -- Sprawdzenie odnalezienie w ? z ? a
local attrs = xmlNodeGetAttributes ( data ) -- Pobranie wszystkich argument ? w w ? z ? a
for name , value in pairs ( attrs ) do -- Rozpakowanie tablicy z argumentami w ? z ? a
outputConsole ( name .. " = " .. value ) -- wy ? wietlenie informacji o nazwie argumentu i jego warto ? ci
end -- Zako ? czenie p ? tli
end -- Zako ? czenie warunku sprawdzenia odnalezienia w ? z ? a
xmlUnloadFile ( meta ) -- Roz ?? czenie pliku XML
end -- Zako ? czenie sprawdzenia za ? adowania pliku XML
Przyk?ad ??czy si? z plikiem xml, nast?pnie odnajduje w?ze? "data" i przy pomocy funkcji xmlNodeGetAttributes pobiera tablice argument?w do funkcji i wy?letla nazwe argumentu wraz z jego warto?ci?.
xmlNodeGetChildren - funkcja zwaraca wszystkie w?z?y "rodzica" lub jedne wez?e?.
xmlNodeGetChildren ( xmlNode [, index ] )
xmlNode - odczytany plik lub w?ze? xml.
index - warto?? od kt?rego w?z?a chcesz zacz?? odczytywanie. Je?eli od 5 to wpisujesz 4. A je?eli od pocz?tku to 0.
Przyk?ad :
Kod: <xml>
<daty>
<data>wartosc1</data>
<data>wartosc2</data>
<data>wartosc3</data>
</daty>
</xml>
local plik = xmlLoadFile ( "plik.xml" ) -- Za ? adowanie pliku XML
if plik then -- Sprawdzenie za ? adowania pliku XML
local nodes = xmlNodeGetChildren ( xml ) -- Pobranie wszystkich w ? z ?? w lub w ? z ? a
for i , node in ipairs ( messageNodes ) do -- Rozpakowanie w ? z ?? w
local value = xmlNodeGetValue ( node ) -- pobranie warto ? ci z pomi ? dzy znacznik ? w w ? z ? a
outputChatBox ( "[" .. i .. "] warto??: " .. value ) -- wy ? wietlenie informacji na czacie
end
xmlUnloadFile ( plik )
end
Przyk?ad ??czy si? z plikiem xml, nast?pnie funkcja xmlNodeGetChildren zwraca wszystkie wez?y do p?tli, potem odczytuje warto??i z pomi?dzy znaczkik?w i wy?letlam na czasie. Na sam koniec roz?aczam si? z plikiem xml.
xmlNodeGetName - funkcja s?u?y do pobierania nazwy w?z?a.
xmlNodeGetName ( xmlNode )
xmlNode - odczytany plik lub w?ze? xml.
Przyk?ad :
local plik = xmlCreateFile ( "plik.xml" , "data" ) -- Stworzenie nowego pliku XML
if plik then -- Sprawdzenie czy zosta ? stworzony plik XML
local test = xmlCreateChild ( xml , "test" ) -- Stworzenie nowego w ? z ? a
local name = xmlNodeGetName ( test ) -- Pobranie nazwy w ? z ? a stworzonego
outputChatBox ( name ) -- Wy ? wietlenie informacji na czacie o nazwie w ? z ? a
xmlSaveFile ( plik ) -- Zapisywanie pliku XML
xmlUnloadFile ( plik ) -- Roz ?? czenie pliku XML
end -- Zako ? czenie warunku sprawdzenia czy zosta ? stworzony plik XML
Przyk?ad tworzy nowy plik "plik.xml" z w?z?em g??wnym "data" i tworzy podwez?? "test" i pobiera jego nazwe i wy?letla na czasie. Na sam koniec zapisuje plik i roz??cza si? z nim.
xmlNodeSetName - funkcja s?u?y do zmiany nazwy w?z?a.
xmlNodeSetName ( xmlNode , name )
xmlNode - odczytany plik lub w?ze? xml.
name - nowa nazwa wez?a
Przyk?ad :
local plik = xmlCreateFile ( "plik.xml" , "data" ) -- Stworzenie nowego pliku XML
if plik then -- Sprawdzenie czy zosta ? stworzony plik XML
local test = xmlCreateChild ( xml , "test" ) -- Stworzenie nowego w ? z ? a
local name = xmlNodeGetName ( test ) -- Pobieranie nazwy w ? z ? a stworzonego
if name == "test" then -- Sprawdzenie czy w ? ze ? ma nazw ? "test"
xmlNodeSetName ( xmlNode , "zmieniona" ) -- Zmienianie nazwy w ? z ? a na "zmieniona"
end -- Zako ? czenie sprawdzania nazwy w ? z ? a
xmlSaveFile ( plik ) -- Zapisywanie pliku XML
xmlUnloadFile ( plik ) -- Roz ?? czanie pliku XML
end
Przyk?ad tworzy nowy plik "plik.xml" z w?z?em g??wnym "data" i tworzy podwez?? "test" i pobiera jego nazwe i je?eli nazwa jego nazwa to "test" to zmienia na "zmieniona". Na sam koniec zapisuje plik i roz??cza si? z nim.
Je?eli chcesz podzi?kowa? za napisanie poradnika, postaw
lub
a zmotywuje mnie to do pisania kolejnych poradnik?w oraz skrypt?w.
Je?eli zauwa?y?e? b??d w poradniku, prosz? napisa? na PW moje.
Poradnik napisany przez
luki123luki123 dla gtao.pl.
Zakaz umieszczania poradnika na innych stronach bez zgody autora!
Aktualizacje:
20:39 - Dodanie do ka?dej linijki przyk?adu kt?rtki komentarz
Ostatnio zmieniony przez luki123luki123 2017-05-19, 20:39, w całości zmieniany 4 razy