Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

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
Re: create XML element with namespace
by ramrod (Hermit) 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?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (5)
As of 2014-12-21 21:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (108 votes), past polls