Perl 利用XML DOM生成XML文件

2021-07-12 00:16:11 字數 1644 閱讀 8042

perl的xml::dom功能很強大,利用它可以輕易地分析xml文件,也可以建立xml文件。

常用的類包括:

xml::dom::node:所有類的基類,表示乙個xml節點。

xml::dom::parser:xml解析器,將xml字串解析成xml::dom::document物件。

xml::dom::document:指向xml文件的根節點。

xml::dom::element:指向乙個元素,通常由xml::dom::document->createelement元素生成。

其他的類可以檢視cpan

上關於 xml::dom 的說明。

建立xml文件的通常做法是:首先通過 xml::dom::parser生成乙個document物件,

再通過這個document物件的 createelement、createtextnode 等方法生成各個節點,

最後再通過 tostring 方法將 document 轉換為字串輸出。

下面是建立xml文件的乙個例子:

#!/usr/bin/perl

use xml::dom;

use xml::twig;

# 建立xml的最外層元素

my $xml = "";

# 通過xml::dom::parser解析外層元素,建立基礎xml文件

# xml::dom::parser::parse函式的返回值為 xml::dom::document 類

my $parser = new xml::dom::parser;

my $dom = $parser->parse($xml);

# 生成book節點

# createelement的返回值為 xml::dom::element 類

# xml::dom::element 的父類是 xml::dom::node 類

my $book = $dom->createelement("book");

# 設定節點屬性

$book->setattribute("title", "my first book");

$book->setattribute("author", "charlee");

# 生成chapter節點

my $chapter = $dom->createelement("chapter");

$chapter->setattribute("id", "1");

# 生成乙個文字節點

my $title = $dom->createtextnode("my first chapter");

# 新增chapter到book

# 新增book到xml文件

# 利用xml::twig整理格式

my $twig = new xml::twig;

$twig->set_indent(" "x4);

$twig->parse($dom->tostring);

$twig->set_pretty_print("indented");

# 輸出

print $twig->sprint;

最後一段使用xml::twig的程式只是為了整理xml輸出結果的格式,

如果不需要整理格式,不呼叫xml::twig,直接使用$dom->tostring也可以。

利用perl 改寫awk統計

root dwh1 log who dwetl pts 0 2015 03 05 16 29 10.130.136.56 dwetl pts 1 2014 12 12 20 41 10.129.133.154 dwetl pts 2 2015 03 09 15 57 10.129.224.28 ro...

python xml生成 python 生成xml

用到這個模組的時候,感覺網上大部分資料比較繁瑣,所以自己寫了個簡單的def 其實最主要掌握以下幾個函式 1.doc xml.dom.minidom.document 生成xml的dom樹物件 2.root doc.createelement root 建立樹節點,可以使根節點或者是子節點 3.chi...

利用mysql生成UUID

在日常的開發環境中,我們經常使用uuid來當做主鍵,一般我們使用的都是現成的工具類,但其實mysql就可以生成uuid。mysql生成uuid是使用的uuid 函式,如下圖 但是生成的這個uuid中間是有 隔開的,我們一般是不要的,所以需要將 去掉。這裡我們使用replace 函式來實現去掉 這樣,...