I'm using XML::Twig to traverse XML documents.

When I get a copy of XML::Twig::Elt object and I try to apply the namespace method on it I get nothing, even though ns_prefix returns a prefix for the element and that prefix is indeed bound in the XML document.

The copy was obtained using:

        my $copy_of_twig = $twig->copy;
where $twig was an XML::Twig object that was used to travese some XML document and at some point needed to be copied.

Apparently, the copy operation strips off all the namespace awareness that the original $twig had. I don't know why this makes sense, and how to avoid this.

My current workaround is to save a reference to the original twig by:

        my $ref_to_twig = \$twig;
but this just waits to come back and bite me later because as soon as $twig changes its state again, the $ref_to_twig will not "remember" the state from the moment of the referencing, but will do what is expected of a reference to do, and will reference $twig as it changes...

Any ideas how to solve this?

Thank you.

-- DJpumps

In reply to XML::Twig and namespaces by DJpumps

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.