Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

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

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?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://754990]
Approved by kennethk
[jedikaiti]: ahhhh
[jedikaiti]: Never heard it referred to that way
[jedikaiti]: Happy Birthday to him!
[Discipulus]: ah! how do you say in english? .. i was sure..
[Discipulus]: ah turned

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (6)
As of 2018-01-18 20:34 GMT
Find Nodes?
    Voting Booth?
    How did you see in the new year?

    Results (214 votes). Check out past polls.