Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

create XML element with namespace

by bazong (Initiate)
on Apr 02, 2009 at 14:50 UTC ( #754990=perlquestion: print w/ replies, xml ) Need Help??
bazong has asked for the wisdom of the Perl Monks concerning the following question:

Hi, I'm using XML:DOM to write a xml document. Basicly it works fine. BUT, I need additionally a namespace. Does anybody know if there is a method like this Java snippet: <code> Element root = odoc.createElementNS(myNamespace, myElementName); <code/> The method name to create an "normal" Element is identical to the Java method form and works! Thanks in advance Michael

Comment on create XML element with namespace
Replies are listed 'Best First'.
Re: create XML element with namespace
by ramrod (Deacon) on Apr 02, 2009 at 18:31 UTC
    I couldn't find anything that looks like it would help you in XML:DOM, so the next best thing I could do is try something similar with XML:LibXML

    Here's some sample code that might help you:
    #Open and parse XML open (my $input, "<xmlsample.xml")or die "Could not open xml input."; my $parser = XML::LibXML->new(); my $pdoc = $parser->parse_file('xmlsample.xml'); close ($input) or die "Could not close xml input."; #Register Namespace my $rdoc = XML::LibXML::XPathContext->new($pdoc->documentElement()); $rdoc->registerNs( ns => 'bazongNS' ); #Find node and add element my ($object) = $rdoc->findnodes("\/\/ns:root"); $object->addNewChild("bazongNS","element"); #Replace file open (my $OutputXML, ">xmlsample.xml") or die "Could not write XML fil +e."; print $OutputXML $pdoc->toString(); close ($OutputXML) or die "Could not close written XML file.";

    The sampleXML.xml originally contains:
    <root xmlns="bazongNS"> </root>

    The sampleXML.xml output contains:
    <?xml version="1.0"?> <root xmlns="bazongNS"> <element/> </root>

    Hope this helps.
      Thank you very much for your support. I realized my script as you recommented. Michael

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://754990]
Approved by kennethk
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (8)
As of 2015-11-28 02:44 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (737 votes), past polls