Hi,

I have the following XML that I want to sort by 'TabOrder':

<?xml version="1.0" encoding="windows-1252"?> <TPersonId name="PersonId" type="inherited"> <TcxTabSheet name="cxTabSheetIdentity" type="object"> <TScrollBox name="ScrollBox2" type="object"> <TabOrder type="shortint">2</TabOrder> <TcxDBDateEdit name="cxDBDateEdit4" type="object"> <TabOrder type="shortint">2</TabOrder> </TcxDBDateEdit> <TcxDBDateEdit name="cxDBDateEdit3" type="object"> <TabOrder type="shortint">1</TabOrder> </TcxDBDateEdit> </TScrollBox> <TScrollBox name="ScrollBox1" type="object"> <TabOrder type="shortint">1</TabOrder> <TcxDBDateEdit name="cxDBDateEdit2" type="object"> <TabOrder type="shortint">2</TabOrder> </TcxDBDateEdit> <TcxDBDateEdit name="cxDBDateEdit1" type="object"> <TabOrder type="shortint">1</TabOrder> </TcxDBDateEdit> </TScrollBox> </TcxTabSheet> </TPersonId>

The following perl script does what I want, but it also issues two identical warnings - Argument "" isn't numeric in numeric comparison (<=>) - how do I prevent the script from attempting to sort children who do not have a TabOrder? (which is what I assume is going on)

use strict; use warnings; use XML::Twig; my $twig = XML::Twig -> new(pretty_print => 'indented'); $twig->parsefile('test.xml'); foreach my $element($twig -> get_xpath('.//')){ $element -> sort_children_on_field('TabOrder', type => 'numeric'); } $twig -> print;
map{$a=1-$_/10;map{$d=$a;$e=$b=$_/20-2;map{($d,$e)=(2*$d*$e+$a,$e**2 -$d**2+$b);$c=$d**2+$e**2>4?$d=8:_}1..50;print$c}0..59;print$/}0..20
Tom Melly, mellytom2 (at) gmail (stop) com

In reply to Twig - sorting XML error by Melly

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.