这是一个xml:
<root>
<error>
<description>
<code>I899</code>
</description>
<solution>
<code>AZE4</code>
</solution>
</error>
<error>
<description>
<code>I900</code>
</description>
</error>
</root>
以下是代码:
myParser := DBMS_XMLPARSER.newParser;
ficContent := DBMS_XSLPROCESSOR.Read2Clob(directoryPasrau, crmNomfilename , '0');
DBMS_XMLPARSER.parseBuffer(myParser,ficContent);
dom := DBMS_XMLPARSER.getDocument(myParser);
rootElement := DBMS_XMLDOM.getDocumentElement(dom);
nlErrors := DBMS_XSLPROCESSOR.selectNodes(DBMS_XMLDOM.makeNode(dom), '//' || rootName || '/error', 'xmlns:ns2="http://www.gip-mds.fr/"');
直到这里,我得到了2个错误节点
FOR i IN 0 .. DBMS_XMLDOM.getLength(nlErrors) - 1 LOOP
tabBisInfosList.EXTEND;
tabBisInfosList(i+1).descriptionCode := TRIM(TRANSLATE(TRANSLATE(DBMS_XMLDOM.getNodeValue(DBMS_XSLPROCESSOR.selectSingleNode(DBMS_XMLDOM.Item(nlAnomalies, i), 'description/code')), chr(10), ' '), chr(9), ' '));
END LOOP;
tabBisInfosList(i + 1).descriptionCode。
中没有任何内容如果我使用这些模式,则相同: &#39; /说明/代码&#39;或&#39; //说明/代码&#39;
你知道为什么吗?
泰
答案 0 :(得分:0)
这里有两个错误:
TRIM(TRANSLATE(DBL_XMLDOM.getNodeValue(DBMS_XSLPROCESSOR.selectSingleNode(DBMS_XMLDOM.Item(nlAnomalies,i),&#39; description / code&#39;)),chr(10),&#39;&# 39;),chr(9),&#39;&#39;));
但是
TRIM(TRANSLATE(DBL_XMLDOM.getNodeValue(DBMS_XMLDOM.getFirstChild(DBMS_XSLPROCESSOR.selectSingleNode(DBMS_XMLDOM.Item(nlAnomalies,i),&#39; description / code&#39;))),chr(10),& #39;&#39;),chr(9),&#39;&#39;));