Perl Cd Bookshelf [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Perl Cd Bookshelf [Electronic resources] - نسخه متنی

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید



22.10. Writing XML


22.10.1. Problem



You
have a data structure that you'd like to convert to XML.

22.10.2. Solution


Use XML::Simple's XMLout
function:

use XML::Simple qw(XMLout);
my $xml = XMLout($hashref);

22.10.3. Discussion


The XMLout function takes a data structure and
produces XML from it. For example, here's how to generate part of the
book data:

#!/usr/bin/perl -w
use XML::Simple qw(XMLout);
$ds = {
book => [
{
id => 1,
title => [ "Programming Perl" ],
edition => [ 3 ],
},
{
id => 2,
title => [ "Perl & LWP" ],
edition => [ 1 ],
},
{
id => 3,
title => [ "Anonymous Perl" ],
edition => [ 1 ],
},
]
};
print XMLout($ds, RootName => "books" );

This produces:

<books>
<book id="1">
<edition>3</edition>
<title>Programming Perl</title>
</book>
<book id="2">
<edition>1</edition>
<title>Perl &amp; </title
</book>
<book id="3">
<edition>1</edition>
<title>Anonymous Perl</title>
</book>
</books>

The rule is: if you want something to be text data, rather than an
attribute value, put it in an array. Notice how we used the
RootName option to XMLout to
specify that books is the top-level element. Pass
undef or the empty string to generate an XML
fragment with no top-level fragment. The default value is
opt.

The id entry in each hash became an attribute
because the default behavior of XMLout is to do
this for the id, key, and
name fields. Prevent this with:

XMLout($ds, RootName => "books", KeyAttr => [ ]);

As with XMLin (see Recipe 22.1), you can identify the hash values that are to
become attributes for specific elements:

XMLout($ds, RootName => "books", KeyAttr => [ "car" => "license" ]);

That instructs XMLout to create attributes only
for the license field in a car
hash.

XML::Simple observes the convention that a hash key with a leading
hyphen (e.g., -name) is private and should not
appear in the XML output.

22.10.4. See Also


The documentation for the module XML::Simple; Recipe 22.1



22.9. Reading and Writing RSS FilesIndex




Copyright © 2003 O'Reilly & Associates. All rights reserved.

/ 875