PLSQL DOM API for XMLType Examples

Example 8-1 Creating and Manipulating a DOM Document

This example illustrates how to create a DOMDocument handle for an example element PERSON:

-- This example illustrates how to create a DOMDocument handle for an example element PERSON:

declare var XMLType;

doc dbms_xmldom.DOMDocument;

ndoc dbms_xmldom.DOMNode;

docelem dbms_xmldom.DOMElement; node dbms_xmldom.DOMNode;

childnode dbms_xmldom.DOMNode;

nodelist dbms_xmldom.DOMNodelist; buf varchar2(2000);

begin var := xmltype('<PERSON> <NAME> ramesh </NAME> </PERSON>');

-- Create DOMDocument handle:

doc := dbms_xmldom.newDOMDocument(var);

ndoc := dbms_xmldom.makeNode(doc);

dbms_xmldom.writetobuffer(ndoc, buf); dbms_output.put_line('Before:'||buf);

docelem := dbms_xmldom.getDocumentElement( doc );

-- Access element:

nodelist := dbms_xmldom^.getElementsByTagName(docelem^, 'NAME'); node := dbms_xmldom.item(nodelist, 0); childnode := dbms_xmldom.getFirstChild(node);

-- Manipulate:

dbms_xmldom.setNodeValue(childnode, 'raj');

dbms_xmldom.writetobuffer(ndoc, buf); dbms_output.put_line('After:'||buf); end;

Example 8-2 Creating a DOM Document Using sys.xmltype

This example creates a DOM document from an XMLType:

declare doc dbms_xmldom.DOMDocument;

buf varchar2(32767);

begin

-- new document doc := dbms_xmldom.newDOMDocument(sys.xmltype('<person> <name>Scott</name> </person>'));

dbms_xmldom.writeToBuffer(doc, buf); dbms_output.put_line(buf); end;

Example 8-3 Creating an Element Node

-- This example creates an element node starting from an empty DOM document: declare doc dbms_xmldom.DOMDocument;

elem dbms_xmldom.DOMElement;

nelem dbms_xmldom.DOMNode;

begin

-- new document doc := dbms_xmldom.newDOMDocument;

-- create a element node elem := dbms_xmldom.createElement(doc, 'ELEM');

-- make node nelem := dbms_xmldom.makeNode(elem); dbms_output.put_line(dbms_xmldom.getNodeName(nelem)); dbms_output.put_line(dbms_xmldom.getNodeValue(nelem)); dbms_output.put_line(dbms_xmldom.getNodeType(nelem));

0 0

Post a comment

  • Receive news updates via email from this site