0
我想要1)根據我的XSD定義文件創建哈希結構,2)初始化該哈希的元素,然後3)寫出一個XML文件。這裏是我在哪裏︰從XSD創建沒有XML的哈希示例使用XML ::編譯
我設法做的是創建一個哈希,但我通過閱讀一個示例XML文件 - 我這樣做,因爲我遵循代碼示例我發現了,但我認爲這些例子試圖完成除我需要做的事情之外的事情。我只需要知道哈希是什麼樣的,我可以設置其元素的值,我不想或不需要知道某個任意XML文件初始化的特定哈希是什麼樣子。
這是我到目前爲止已經完成:
#!/usr/bin/perl
use warnings;
use strict;
use Data::Dumper;
use XML::LibXML;
use XML::Compile::Schema;
use File::Spec;
use File::Copy;
use Getopt::Long;
use String::Util;
my $xsd = 'My_XMLSchema.xsd';
my $xml_in = 'example.xml';
my $schema = XML::Compile::Schema->new($xsd);
my $reader = $schema->compile(READER => '{http://tempuri.org/XMLSchema.xsd}RootElement');
my $hash = $reader->($xml_in);
my $doc = XML::LibXML::Document->new('1.0', 'UTF-8');
my $write = $schema->compile(WRITER => '{http://tempuri.org/XMLSchema.xsd}RootElement');
my $xml_out = $write->($doc, $hash);
如果我
打印自卸車$哈希
輸出,如果我想我會寫的代碼創建我提供的XML文件 - 這不是我所需要的。我只是想生成我的$ hash,這樣我就可以將數據值保存在其中並創建一個XML。似乎我應該只需要和XSD文件來做到這一點。這有意義嗎?
我不明白什麼是$讀者其實是。
謝謝。哈希結構已經創建 - 這是使用XML :: Compile爲我完成的。我用來創建哈希的例子看起來既可以使用XSD模式定義文件,也可以使用示例XML文件。我試圖瞭解樣本文件是否真的需要,如果是這樣,爲什麼。當我已經提供了XSD時,我確實需要使用XML對我來說沒有意義。 –
我編輯了我的答案,澄清了示例文件的讀取可以刪除。 – BarneySchmale