[Perl]利用XML::DOM生成XML文档
来源:互联网 发布:angularjs和vue.js 编辑:程序博客网 时间:2024/05/16 14:16
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 等方法生成各个节点,
最后通过 XML::DOM::Node->appendChild 方法将节点添加到Document对象中,
最后再通过 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->appendChild($title);
# 添加Chapter到Book
$book->appendChild($chapter);
# 添加Book到XML文档
$dom->getDocumentElement->appendChild($book);
# 利用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也可以。
常用的类包括:
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 等方法生成各个节点,
最后通过 XML::DOM::Node->appendChild 方法将节点添加到Document对象中,
最后再通过 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->appendChild($title);
# 添加Chapter到Book
$book->appendChild($chapter);
# 添加Book到XML文档
$dom->getDocumentElement->appendChild($book);
# 利用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也可以。
0 0
- [Perl]利用XML::DOM生成XML文档
- [Perl]利用XML::DOM生成XML文档
- 利用DOM生成XML文档
- 利用jdom生成xml文档
- 利用DOM来处理XML文档(zz)
- Javascript利用DOM操作XML文档
- 利用php DOM函数库创建xml文档
- 利用DOM解析XML文档实例
- 利用DOM解析XML文档实例
- 利用DOM、SAX技术解析XML文档
- java 利用DOM写入XML文档
- JAVA中利用DOM解析XML文档
- 利用DOM和SAX解析XML文档
- .DOM生成和解析XML文档
- DOM生成和解析XML文档
- DOM生成和解析XML文档
- Dom解析和生成XML文档
- Dom解析和生成XML文档
- Android安全攻防战,反编译与混淆技术完全解析(下)
- c语言实现二叉树的先序遍历,中序遍历,后序遍历
- 初探TypedArray和AttributeSet
- 算法课笔记系列(八)——NP问题及其计算复杂性
- Android源码解析(二十八)-->电源开关机按键事件流程
- [Perl]利用XML::DOM生成XML文档
- java的若干问题(3)——多线程
- iOS学习之——UIImagePickerController从拍照、图库、相册获取图片
- Java NIO编程
- python callable()函数
- select、poll、epoll之间的区别总结(转)
- ActiveMQ之细嚼慢咽
- 一张图清晰表示32位机和64位机的各数据类型占用位数
- java.sql.SQLException: 无效的列索引