Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2017-05-18, 15:01


luki123luki123

Place Game






Wiek: 28
Na forum: 5275 dni
Posty: 1948
Nick w MP: LuKiO

Piwa: 6101

Respekt: 611
Respekt: 611Respekt: 611

[LLL] - LuKiO Lua Learning

XML


Witaj
, 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 xmlCopyxmlNew )

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?adowaplik
    local new = xmlCopyFileplik"copy.xml") -- Kopiowanie pliku
    if new then -- Sprawdzanie czy uda?o sikopiowanie
        xmlSaveFile( new ) -- Zapisywanie skopiowanego pliku
    end -- Zamykanie ifu kopiowania pliku
    xmlUnloadFileplik ) -- 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 plikNamenodeName )

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 zostastworzony plik XML
        xmlSaveFileplik )  --Zapisywanie nowego pliku XML
    end -- Zamykanie ifu sprawdzania czy zostastworzony 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.
xmlDestroyNode node )

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 zostastworzony nowy plik XML
            xmlCreateChild(xml"data") -- Stworzenie nowego pod w?z?"data" 
            xmlSaveFilexml ) -- Zapisywanie pliku XML
            xmlUnloadFilexml ) --Roz??czanie pliku XML
        end -- Zamykanie ifu sprawdzania czy zostastworzony 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 zostaza?adowany plik XML
            local data xmlFindChildxml"data"0) -- Znalezienie pierwszego w?z?a 
                if data then -- Sprawdzenie czy zostaodnaleziony 1 w?ze? 
                    xmlDestroyNodedata ) -- Usuwanie znalezionego w?z?a
                    xmlSaveFileplik ) -- Zapisywanie pliku XML
                    xmlUnloadFileplik ) -- 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.
xmlLoadFile xmlFile )

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 zostaza?adowany plik XML
            outputChatBox"Plik zosta? za?adowany") -- Wy?wietlenie informacji na czacie
            xmlUnloadFilexml ) -- 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 xmlNodename)   

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 xmlNodeGetAttributeplik"data1" ) -- Pobieranie atrybutu w?z?a 
        local data2 xmlNodeGetAttributeplik"data2" ) -- Pobieranie atrybutu w?z?a 
        outputChatBox"data1: "..data1.." data2 :"..data2) -- Wy?wietlenie informacji na czacie
        xmlUnloadFileplik ) -- 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 xmlNodenamevalue)     

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
        xmlNodeSetAttributeplik"data1""zmienione" ) -- Zmiana atrybutu w?z?a
        outputChatBox"Zosta?a zmieniona warto?? argumentu 'data1' na warto?? 'zmienione'") -- wy?wietlenie informacji na czacie 
        xmlSaveFileplik ) -- Zapisywanie pliku XML
        xmlUnloadFileplik ) -- 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 xmlNodeGetValueplik ) -- 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 pobranwarto?ci? 
        xmlUnloadFileplik ) -- 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 xmlNodevalue [, 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
        xmlNodeSetValueplik"zmieniona" ) -- Zmienienie warunku pomi?dzy znacznikami w?z?a
        outputChatBox"Warto?? z pomi?dzy znacznik?w zosta?a zmieniona !") -- Wy?wietlenie informacji na czacie
        xmlSaveFileplik ) -- Zapisywanie pliku XML
        xmlUnloadFileplik ) -- 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.
xmlSaveFile xmlFile 

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
        xmlSaveFileplik ) -- 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.
xmlUnloadFile xmlFile)      

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
        xmlUnloadFileplik ) -- 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 xmlNodename )

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
        xmlCreateChildplik"data") -- Tworzenie nowego pod w?z?a
        xmlSaveFileplik ) -- Zapisywanie pliku XML
        xmlUnloadFileplik ) -- 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 xmlNodenameindex )

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 xmlFindChildplik"data") -- Odnalezienie 1 w?z?a 
    local value xmlFindChildnode"value") --Odnalezienie 1 pod w?z?a 
    local wartosc xmlNodeGetValuevalue ) -- 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?cina czacie 
    xmlUnloadFileplik ) -- 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 xmlFindChildplik"data") -- 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 xmlNodeGetValuenode ) -- 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 zostastworzony plik XML
    local test  xmlCreateChild(xml"test")  -- Stworzenie nowego w?z?a
    local name xmlNodeGetName(test) -- Pobranie nazwy w?z?a stworzonego
    outputChatBoxname ) -- Wy?wietlenie informacji na czacie o nazwie w?z?a 
    xmlSaveFileplik ) -- Zapisywanie pliku XML
    xmlUnloadFile plik ) -- Roz??czenie pliku XML
    end -- Zako?czenie warunku sprawdzenia czy zostastworzony 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 xmlNodename )

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 zostastworzony 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?zema nazw"test" 
            xmlNodeSetName(xmlNode"zmieniona") -- Zmienianie nazwy w?z?a na "zmieniona"
        end -- Zako?czenie sprawdzania nazwy w?z?a
    xmlSaveFileplik ) -- 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  
Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 2 piw(a):
Dexnes_, STOPseba
Tagi: [lll] :: xml
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Poradniki do LUA » [LLL] XML Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku