I am looking forward to your answer to the OP's question based on XML::Rules.
I've posted about XML::Rules as a replacement for XML::Simple before: Re: What is correct way to reference?, Re^2: hashref with(out) arrays. The following at least generates a consistent Perl data structure, and can be adapted as needed.
use warnings;
use strict;
use XML::Rules;
use Data::Dump;
my $parser = XML::Rules->new(
stripspaces => 3|4,
rules => [ _default => 'raw' ],
);
dd $parser->parse(<<'ENDXML');
<xmltop>
<xmlbody>
<tag1>jdjdjdjd</tag1>
<tag2>dkdkkd</tag2>
</xmlbody>
</xmltop>
ENDXML
__END__
[
"xmltop",
{
_content => [
[
"xmlbody",
{
_content => [
["tag1", { _content => "jdjdjdjd" }],
["tag2", { _content => "dkdkkd" }],
],
},
],
],
},
]
Update: One possible caveat here is that if an XML element has an attribute _content, then its value will be prepended to the node's text content.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.