1

Oracle11g2DBを使用しています。Long列/変数にいくつかのxmlコンテンツがあります。

誰かがxml属性値を読むのを手伝ってくれますか?

例えば。

<?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>

の横の値を読み取りたい<variable name= "L_LPN">K01-4713BEプログラムで戻る必要があります。

4

1 に答える 1

2

これを試して:

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 セレクターを取得するため、必要なものを選択できることに注意してください。

于 2012-01-05T07:52:41.477 に答える