Попробуйте это:
declare
v_parser Xmlparser.Parser;
v_doc XMLDOM.DOMDocument;
v_nl XMLDOM.DOMNodeList;
v_node XMLDOM.DOMNode;
v_your_xml LONG := '<?xml version="1.0" encoding="UTF-8" standalone="no"?>' ||
/*'<!DOCTYPE labels SYSTEM "label.dtd">*/
'<labels _QUANTITY="1" _JOBNAME="LBL213685">' ||
'<label _FORMAT="XE_INSP_REQ_LBL.lwl">' ||
'<variable name= "L_DATE">04-JAN-2012</variable>' ||
'<variable name= "L_TIME">10:45:17</variable>' ||
'<variable name= "L_LPN">K01-4713BE</variable>' ||
'<variable name= "L_SUPPLIER">RECISION OIL, INC</variable>' ||
'</label></labels>';
begin
v_parser := Xmlparser.newParser;
xmlparser.setValidationMode(v_parser, TRUE);
Xmlparser.parseBuffer(v_parser, v_your_xml);
v_doc := Xmlparser.getDocument(v_parser);
v_nl := xslprocessor.selectNodes(XMLDOM.makeNode(v_doc),
'/labels/label/variable[@name="L_LPN"]');
v_node := XMLDOM.getFirstChild(XMLDOM.item(v_nl, 0));
dbms_output.put_line(XMLDOM.getNodeValue(v_node));
end;
обратите внимание, что функция xslprocessor.selectNodes получает селектор XPath, поэтому вы можете выбрать все, что захотите