1

我想使用 Perl 模块 Graph::easy 将 XML 文件转换为 graphML。我reeded 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 数据。任何人都可以帮我解决这个问题吗?

4

2 回答 2

0

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

于 2011-11-22T16:44:20.583 回答
0

正如达沃格所说。您需要使用 XSLT。XSLT 只是一个样式表。当你使用 perl 时,你不会离开它。Perl 通过 XML::LibXSLT 等包提供对 XSLT 的支持。

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

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

于 2011-11-23T05:36:33.563 回答