DBMS.XMLDOM:如何在xml中获取节点文本值

时间:2017-02-14 14:55:41

标签: xml oracle plsql

我们说我有这个xml文件:

<root>
  <id>2</id>
</root>

Code : 

myParser := DBMS_XMLPARSER.newParser;
ficContent := DBMS_XSLPROCESSOR.Read2Clob('MY_DIR', 'myfile.xml' , '0');
DBMS_XMLPARSER.parseBuffer(myParser,ficContent);
dom := DBMS_XMLPARSER.getDocument(myParser);
rootElement := DBMS_XMLDOM.getDocumentElement(dom);
nl := DBMS_XMLDOM.getChildrenByTagname(rootElement, 'id');
node := DBMS_XMLDOM.item(nl, 0); 
DBMS_OUTPUT.PUT_LINE('Node name : ' || DBMS_XMLDOM.getNodeName(node) || ' / value : ' || DBMS_XMLDOM.getNodeValue(node));

结果:

Node name : id
/ value : it is empty !!!!

所以我必须遇到问题才能到达节点但无法获得值

我认为这一定是显而易见的但是......我没有看到它。我应该打电话给另一种方法吗?

1 个答案:

答案 0 :(得分:0)

确实,很明显:

我应该写:

DBMS_XMLDOM.getNodeValue(DBMS_XMLDOM.getFirstChild(node));