in reply to Re^3: XML::LibXML - WHAR HASH TREES WHAR?!
in thread XML::LibXML - WHAR HASH TREES WHAR?!

Neither was I. I was referring to what its design allows.

All the more reason to allow both methods.

Are you kidding me? The equivalent would be

$sb->setAttribute('XML') if !$sb->setAttribute('XML');

Okay, what if it's a node and not an attribute?

Sorry, but that's not working.

Sorry, my bad; it should be hash:

my %children = $doc->{root}{node}[0]('%'); say join "\n", map { "$_ = $children{$_}" } keys %children; say keys %children == 6 ? "ok" : "XXX"; # includes extra "CONTENT" ke +y/value

Replies are listed 'Best First'.
Re^5: XML::LibXML - WHAR HASH TREES WHAR?!
by ikegami (Patriarch) on Jul 15, 2011 at 19:55 UTC

    Okay, what if it's a node and not an attribute?

    $sb->append(new_data_ele(SourceDBType => 'XML')) if !$sb->findnodes('XML')->size;

    Sorry, my bad; it should be hash:

    Ok, will strike my comment.

    sub child_nodes { my %c = $_[0]('%'); return map { ( my $t = $_ ) =~ s{/CONTENT\K}{}; [ $t => $c{$_} ] } grep $_ ne 'CONTENT', keys %c; }

    It still can't differentiate between elements and attributes, though.

      $sb->append(new_data_ele(SourceDBType => 'XML')) if !$sb->findnodes('XML')->size;

      Okay, but that only checks to see if it found a SourceDBType tag. What if it's blank?

      And I've never even seen a "SourceDBType => 'XML'" syntax. According to the docs, you can define a name and that's it. Hash-based options don't exist at all.

        What if it's blank?

        Just adjust the XPath to your liking.

        Hash-based options don't exist at all.

        Where do you see a hash? Or docs for new_data_ele?