Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

create XML element with namespace

by bazong (Initiate)
on Apr 02, 2009 at 14:50 UTC ( [id://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

Replies are listed 'Best First'.
Re: create XML element with namespace
by ramrod (Curate) 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
Domain Nodelet?
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?Last hourOther CB clients
Other Users?
Others learning in the Monastery: (2)
As of 2024-04-25 19:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found