Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re^2: convert to XML

by Anonymous Monk
on Aug 13, 2009 at 04:55 UTC ( [id://788120]=note: print w/replies, xml ) Need Help??


in reply to Re: convert to XML
in thread convert to XML

#!/usr/bin/perl use strict; print qq{<?xml version="1.0"?>\n}; my $tag; while(<DATA>) { chomp; if ( /^\[(\w+)\]/ ... /^\w+/ ) { $tag = $1 if $1; print "<$tag>$_</$tag>\n" if ( ! /^\[/ ); } } __DATA__ [DATA] data1 [ENTRY] entry here [STORY] story details [DATA] [ENTRY] another entry here [STORY] another story [KEY] [WRITER] Han Staff
For the above code, the output is below
<?xml version="1.0"?> <DATA>data1</DATA> <ENTRY>entry here</ENTRY> <STORY>story details</STORY> <DATA>another entry here</DATA> <STORY>another story</STORY> <KEY>Han</KEY>
KEY WRITER Han Staff For KEY there is no string, for WRITER there is 2 lines. The value of WRITER is for KEY in the output. Please can you tell me how can I solve this

Replies are listed 'Best First'.
Re^3: convert to XML
by alexm (Chaplain) on Aug 13, 2009 at 15:35 UTC
    The value of [WRITER] is for [KEY] in the output.

    The perlop says that the right operand is not evaluated while the operator is in the "false" state, and the left operand is not evaluated while the operator is in the "true" state. Meaning that once /^\[(\w+)\]/ is true, it's not evaluated anymore, so $1 is still KEY when print is performed.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://788120]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (4)
As of 2024-03-29 05:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found