如何在perl中使用数组构建hashref?
我很难用XML::Simple在perl中构建我认为是hashref(href)的东西。 我是新来的,所以不知道该怎么做,我也找不到太多可以用数组来构建这个href。我找到的所有示例都是针对普通href的 下面的代码输出了正确的xml位,但我真的很难在这个href中添加更多内容 谢谢 达里奥如何在perl中使用数组构建hashref?,perl,xml-simple,hashref,Perl,Xml Simple,Hashref,我很难用XML::Simple在perl中构建我认为是hashref(href)的东西。 我是新来的,所以不知道该怎么做,我也找不到太多可以用数组来构建这个href。我找到的所有示例都是针对普通href的 下面的代码输出了正确的xml位,但我真的很难在这个href中添加更多内容 谢谢 达里奥 要向array ref'books'添加新的散列,需要将array ref强制转换为一个数组,然后继续@{$test->{book}将数组引用强制转换为数组 push @{ $test->{book}
要向array ref'books'添加新的散列,需要将array ref强制转换为一个数组,然后继续
@{$test->{book}
将数组引用强制转换为数组
push @{ $test->{book} }, { name => ['name'], value => ['The Hobbit'] };
XML::Simple
是一个难题,因为您永远无法确定是需要数组还是哈希,而且很难区分元素和属性
我建议你搬到伦敦去。这个程序演示了如何使用它创建与您自己使用XML::Simple
的程序相同的XML数据
它有一个优势,因为它在内存中构建了正确表示XML的数据结构。可以像这样线性地添加数据,也可以在结构中存储书签,然后返回并向以前创建的节点添加信息
此代码以不同的方式添加两个book
元素。第一种是标准方式,打开元素,添加name
和value
元素,然后再次关闭book
元素。第二个显示了\u ast
(抽象语法树)方法,该方法允许您以类似于XML::Simple
中的嵌套数组的形式传递数据,以实现简洁性。此结构要求您在属性名称前面加上连字符-
,以区别于元素名称
use strict;
use warnings;
use XML::API;
my $xml = XML::API->new;
$xml->library_open;
$xml->book_open;
$xml->name('createdDate');
$xml->value('20141205');
$xml->book_close;
$xml->_ast(book => [
name => 'deletionDate',
value => '20111205',
]);
$xml->library_close;
print $xml;
输出
<?xml version="1.0" encoding="UTF-8" ?>
<library>
<book>
<name>createdDate</name>
<value>20141205</value>
</book>
<book>
<name>deletionDate</name>
<value>20111205</value>
</book>
</library>
创建日期
20141205
删除日期
20111205
<?xml version="1.0" encoding="UTF-8" ?>
<library>
<book>
<name>createdDate</name>
<value>20141205</value>
</book>
<book>
<name>deletionDate</name>
<value>20111205</value>
</book>
</library>