对XML进行操作,高分相送。
有二个XML文件,格式如下
1.xml
<?xml version="1.0"?>
<server>
<samba>
<home value="samba">/etc/samba</home>
<version value="samba">1.0</version>
</samba>
<apache>
<home value="apache">/etc/apache</home>
<version value="apache">1.0</version>
</apache>
</server>
2.xml
<?xml version="1.0"?>
<cvs>
<home value="cvs">/etc/cvs</home>
<version value="cvs">1.0</version>
</cvs>
现在要将2.xml接到1.xml文件中,加入后1.xml成为如下的格式:
<?xml version="1.0"?>
<server>
<samba>
<home value="samba">/etc/samba</home>
<version value="samba">1.0</version>
</samba>
<apache>
<home value="apache">/etc/apache</home>
<version value="apache">1.0</version>
</apache>
<cvs>
<home value="cvs">/etc/cvs</home>
<version value="cvs">1.0</version>
</cvs>
</server>
用XML::DOM或是XML::Simple都是只能一次加入一条记录而不能把一个文件加入到另一个文件中,要怎么做呢?谢谢各位。
问题点数:100、回复次数:7Top
1 楼D_Q(Didi)(A.Dai)(菜鸟也想飞)回复于 2002-09-28 17:41:15 得分 100
XML Writer模块Demo 可以参考,个人看法,不要用Perl去读XML太慢,应该采用XSL来解释XML 这样速度会快……
我认为,如果你开发 Perl+XML+XSL+MySQL用这个模块最适合
#---------------
use XML::Writer;
use IO;
my $output = new IO::File(">output.xml");
my $writer = new XML::Writer(OUTPUT => $output);
$writer->startTag("greeting","class" => "simple");
$writer->characters("Hello, world!");
$writer->endTag("greeting");
$writer->end();
$output->close();
#---------参考
if ($writer->within_element('body'))
{
$writer->startTag('h1');
}
else
{
$writer->startTag('title');
}
#------搞定结,或者 继续讨论Top
2 楼D_Q(Didi)(A.Dai)(菜鸟也想飞)回复于 2002-09-28 17:45:33 得分 0
你的程序 过会吃完饭用 XML Write给你写…… 先闪~~Top
3 楼bin127(温柔一刀)回复于 2002-09-28 18:30:49 得分 0
忘记说了,那二个文件的标签值是不确定的,不只是home和version。Top
4 楼bin127(温柔一刀)回复于 2002-09-28 21:07:53 得分 0
这个模块不好插入到特定的结点下?或是我没有找到方法?
要想在server这个顶级结点下插入很难,只是在那个XML文件后新加入几行,不能实现目标。Top
5 楼bin127(温柔一刀)回复于 2002-09-28 21:09:59 得分 0
我不是做网页,我是做linux下的配置文件,server下的cvs等是所安装的系统服务,而它的下级是所要的参数。Top
6 楼D_Q(Didi)(A.Dai)(菜鸟也想飞)回复于 2002-09-28 21:51:38 得分 0
写应用程序和CGI不都一样吗?Top
7 楼bin127(温柔一刀)回复于 2002-09-28 23:04:22 得分 0
我搞定了Top




