利用lua指令碼輕鬆讀寫xml元素的值

2021-06-20 07:37:19 字數 1595 閱讀 5512

lua是一種非常小巧的指令碼工具。

但是,他的字串操作功能卻非常強大。

鑑於此,用他來操作xml檔案,還是挺方便的。

下面就來演示一下具體如何實現。

一、從xml檔案中獲取指定元素的值。

將下面的內容儲存為乙個檔案,例如:get_xml_element.lua,並賦予可執行許可權。

然後執行如下命令,即可獲取指定xml檔案中指定元素的值

./get_xml_element.lua  /path/to/xml_file_name.xml  element_name

好了,下面就是這個簡單的lua指令碼的內容。

#!/usr/bin/lua

xml_file=arg[1]    --arg[1]是第1個命令列引數,用於指定xml檔案的路徑

element=arg[2]   --arg[2]是第2個命令列引數,用於指定xml元素名稱

head="<"..element..">"    --根據元素名生成起始tag,即

tail=""   --根據元素名生成關閉tag,即

file = io.open(xml_file, "r");  --開啟xml檔案

data = file:read("*all");     --讀取檔案的全部內容到data變數中

file:close();                 --關閉xml檔案

--獲取起始tag與關閉tag之間的內容到value中

_,_,value=string.find(data, head.."(.-)"..tail)

--輸出value的值到標準輸出

print(value)

二、修改xml檔案中指定元素的值。

直接上指令碼了。

#!/usr/bin/lua

xml_file=arg[1]  --arg[1]用於指定xml檔案的路徑

element=arg[2]   --arg[2]用於指定xml元素名稱

new_value=arg[3] --arg[3]用於指定xml元素的新值

head="<"..element..">"    --根據元素名生成起始tag,即

tail=""   --根據元素名生成關閉tag,即

file = io.open(xml_file, "r"); --開啟xml檔案

data = file:read("*all");      --讀取檔案的全部內容到data變數中

file:close();                  --關閉xml檔案

--將element之前的內容,element的值,element之後的內容,分別儲存在pre,old_value,follow中

_,_,pre,old_value,follow=string.find(data, "(.*)("..head..".-"..tail..")(.*)")

file = io.open(xml_file, "w");      --開啟xml檔案

file:write(pre..head..new_value..tail..follow); --拼裝出新的檔案內容,並寫入

file:close();                       --關閉xml檔案

利用ElementTree讀寫XML檔案

在python中,對於xml的處理有很多模組,dom,sax,elementtree 或者對應的celementtree 等等,其中使用起來比較快捷方便的,應該算是elementtree了。似乎很多人懶得看e文的manual,呵呵,那我就總結一下個人的使用經驗。在python2.5的版本中,elem...

Linux Shell指令碼讀寫XML檔案

在linux下如何用shell指令碼讀寫xml?現有乙個config.xml xml version 1.0 encoding utf 8 config server ip 192.168.1.45 server ip server port 1209 server port repository ...

Linux Shell指令碼讀寫XML檔案

在linux下如何用shell指令碼讀寫xml?現有乙個config.xml 192.168.1.45 1209 home john 需要修改裡面的 server ip server port and import path 用shell指令碼的引數 1,2,3來寫入。思路1 用sed實現 首先想到...