下面的语句中<![CDATA[....]]>是什么意思,我要如何获得里面的内容
<Cont>
<![CDATA[            
  <NameID>4488</NameID>
]]>
</Cont>

解决方案 »

  1.   

    CDATA段能让xml保存ansi字符以外的数据在w3c定义的规范中,CDATA节点的nodeValue()为4:
    const unsigned short      CDATA_SECTION_NODE = 4;参考:http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html
    所以你能象一般节点一样访问这个文件
      

  2.   

    Eastunfail(龍子龍孫),你给的文章看不大懂,我想我如何读到CDATA段里面的内容,有代码吗
      

  3.   

    //先将数据读入XMLDOCUMENT
      XMLDocument1.Active:=true;
    //下面定位节点
      dintf:=XMLDocument1.DOMDocument as IDOMNodeSelect;
      s:='Cont';
      dNode:=dintf.selectNode(s);
    //取到CDATA的父节点
      if Assigned(dNode) then
      begin
    //取到CDATA节点
        dNode:=dNode.firstChild;
        if Assigned(dNode) then
        begin
    //输出内容
          ShowMessage(dNode.nodeValue);
        end;
      end;
      

  4.   

    吹欠大哥:你那样我取得到的
    <NameID>4488</NameID>
    如果我想取得NameID这个值应该怎么办呢
      

  5.   

    CDATA节点里面数据都是按普通字符串处理,不然何必用它.如果里面数据还是XML,复杂的你可以再用XML DOM方式解析,或者直接点,字符串搜索..你就搜索子串'<NameID>'和'</NameID>'不就可以取出4488这个东西吗?
      

  6.   

    哈欠大哥:你是指CDATA里面的内容再转换成一个xmldoc文件进行分析吗,我调用selectnode的方法,但是如果把路径设为selectnode(Cont/NameID),好像就不行,只能是selectnode(Cont),是不是CDATA里面的内容不能这样查找
      

  7.   

    先不是说了吗?DOM方式处理的时候,“CDATA节点里面数据都是按普通字符串处理”,