Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Re^2: XML::Simple how do i keep the same xml format (Values and Attributs)?

by tobyink (Abbot)
on Jun 14, 2013 at 11:17 UTC ( #1038946=note: print w/replies, xml ) Need Help??

in reply to Re: XML::Simple how do i keep the same xml format (Values and Attributs)?
in thread XML::Simple how do i keep the same xml format (Values and Attributs)?

Then you are stuck between a rock and a hard place. You don't want to switch away from XML::Simple, yet the author of XML::Simple freely admits that it's not suitable for the sort of task you're describing and recommends other modules instead. Quotes from the documentation:

"XML::Simple is able to present a simple API because it makes some assumptions on your behalf. These include:

  • [...]
  • "You don't want fine-grained control of the formatting of generated XML
  • [...]

"In a serious XML project, you'll probably outgrow these assumptions fairly quickly.


"For event based parsing, use SAX (do not set out to write any new code for XML::Parser's handler API - it is obselete).

"For tree-based parsing, you could choose between the 'Perlish' approach of XML::Twig and more standards based DOM implementations - preferably one with XPath support such as XML::LibXML."

Personally I use XML::LibXML for virtually any XML-handling task that's thrown my way, and am rarely disappointed by it.

package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name
  • Comment on Re^2: XML::Simple how do i keep the same xml format (Values and Attributs)?

Replies are listed 'Best First'.
Re^3: XML::Simple how do i keep the same xml format (Values and Attributs)?
by tobias_hofer (Friar) on Jun 14, 2013 at 12:08 UTC
    Yes, you are right..
    If I am lucky I can convince people installing this package so I can switch to it. Thanks a lot!

    However, I have found a solution :-))

    XML Simple puts nearly every hash as an XML-attribute. But not if its pointing to another hash, example
    $tdata->{'TABLE-CAPTION'} = {'ID' => $_id, 'LONG-NAME' => {content => +'Test results'}};
    Using content will create another XML-tag and not an attribute. But for using this I had to configure XML-Simple like this.
    my $xmlParser = new XML::Simple( RootName => 'TABLE', KeepRoot=>1, ValueAttr=>{ 'TABLE-CAPTION' => 'ID', 'ContentKey' => 'content', }
    Now its working fine, look at this: ^^
    P>Testresults:</P><TABLE> <TABLE-CAPTION ID="ID42.401123046875"> <LONG-NAME>Testresults</LONG-NAME> </TABLE-CAPTION> <TGROUP COLS="4"> <COLSPEC COLNAME="test-id" COLNUM="0" COLWIDTH="1.00*" /> <COLSPEC COLNAME="status" COLNUM="1" COLWIDTH="1.00*" /> <COLSPEC COLNAME="test-spec" COLNUM="2" COLWIDTH="1.00*" /> <COLSPEC COLNAME="requirement-ids" COLNUM="3" COLWIDTH="1.00*" /> <TBODY> <ROW> <ENTRY COLNAME="test-id"> ...

    Thank you very much for all your hints and tips!

    Best regards!!

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1038946]
[erix]: hm, there's a FANN perl module - looks a bit old
[Cosmic37]: I'm afraid I don't know the answer to your map question...... what were the references too?
[corenth]: each reference was to a fairly small scaler.
[corenth]: I mean, array of scalers. usually triples.
[Cosmic37]: there is a FANN discussion group but seems to have gone quiet... http://leenissen. dk/fann/forum/ viewforum.php?f=18 &sid=1afc1fb3fa1a3 7f52b03e40d05cdaaa 3

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (6)
As of 2018-02-20 18:31 GMT
Find Nodes?
    Voting Booth?
    When it is dark outside I am happiest to see ...

    Results (274 votes). Check out past polls.