【问题标题】:plsql DBMS_XMLDOM how to check if a node is empty ?plsql DBMS_XMLDOM 如何检查节点是否为空?
【发布时间】:2012-11-08 20:27:36
【问题描述】:

对于这个 xml 文件:

<ROOT>
  <A>
    <B>2</B>
    <C>3</C>
    <D>
      <E>12</E>
    </D>
    <F/>
    <G/>
  </A> 
</ROOT>

如何获得像 B 和 C 这样的节点数,其中有一个值但没有子节点?

在这种情况下,数字应该是2。

【问题讨论】:

    标签: xml dom plsql database


    【解决方案1】:

    如果你知道你想要哪个特定节点(大多数时候你知道)我更喜欢使用 XPath 来选择节点(更少的编码)。

    考虑这个简短的示例:

     set serveroutput on;
     declare
       XML CLOB;
       XML_DOCUMENT DBMS_XMLDOM.DOMDOCUMENT;
       XML_NODE DBMS_XMLDOM.DOMNODE;
     begin
       XML := '
       <ROOT>
         <A>
           <B>2</B>
           <C>3</C>
           <D>
             <E>12</E>
           </D>
           <F/>
           <G/>
         </A> 
       </ROOT>
       ';
    
       XML_DOCUMENT := DBMS_XMLDOM.NEWDOMDOCUMENT(XML);
       XML_NODE := DBMS_XMLDOM.MAKENODE(XML_DOCUMENT);
       XML_NODE := DBMS_XSLPROCESSOR.SELECTSINGLENODE(XML_NODE,'ROOT/A/B/text()');
       IF(DBMS_XMLDOM.ISNULL(XML_NODE) = FALSE)
       THEN
         dbms_output.put_line(DBMS_XMLDOM.GETNODEVALUE(XML_NODE));
       END IF;
     end;
    

    【讨论】:

      猜你喜欢
      • 2019-06-20
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 2017-08-12
      • 1970-01-01
      • 2014-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多