如何使用Perl中的Graph :: easy模块处理XML文件

时间:2011-11-22 15:07:28

标签: perl graphml

我想使用Perl模块Graph :: easy将XML文件转换为graphML。我重新使用Graph :: module然后我尝试了一些示例如何添加节点以及如何添加边缘,我使用Graph :: Easy生成了graphML文件。例如:

#!/usr/bin/perl
use warnings;
use strict;
use Graph::Easy;

my $graph = Graph::Easy->new();
$graph->add_edge( 'supplier', 'customer' );

open STDOUT,  '>',  'biji.graphml';
binmode STDOUT, ':encoding(UTF-8)';
print $graph->as_graphml();
close STDOUT;

运行此脚本后,它生成了一个graphML文件,我使用了一些工具在图形模型中表示它。但是如何使用Graph :: easy处理这个XML文件并将其转换为GraphML文件?

<orderinfo>
 <servicename>scc</servicename>
  <Customer>bvr</Customer>
   <Suppliers>
     <Supplier Id="svr" />
   </Suppliers>
</orderinfo>

我需要在图表供应商和客户和服务名称中表示这些节点之间的节点和边缘。我在文件中有很多这样的XML数据。任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

您的输入是XML。您的输出是XML的方言。将一种XML转换为另一种XML的最佳方法可能是使用XSLT。根本不需要使用Perl。

答案 1 :(得分:0)

正如davorg所说。您需要使用XSLT。 XSLT只是一个样式表。当你使用它时,你不会离开perl。 Perl使用XML :: LibXSLT等软件包为XSLT提供支持。

您可以将这些包用于XSLT。希望这会有所帮助。

请看 http://metacpan.org/pod/XML::LibXSLThttp://www.w3schools.com/xsl/