就像下面这样的情况:- <my:ReportContent>
- <![CDATA[ 
MESSAGE FOR NAVAREA XI(IOR) ISSUED BY …
  ]]> 
  </my:ReportContent>   如何判断XML文件的一个节点下是否有<![CDATA[...]]>

解决方案 »

  1.   


    - <![CDATA[ 
      ......
       ]]> 里面存的是数据,但是如果用DOM取ReportContent节点的InnerText的话,是得不到<![CDATA[  ]]> 的,只能得到里面的数据。我现在的目的是如果判断是这种格式的话就用另一种解析函数来读数据内容,否则得不到正确的结果。
      

  2.   

    $xml = <<<XML
    <?xml version="1.0"?>
    <root>
       <ReportContent>
       <![CDATA[ MESSAGE FOR NAVAREA XI(IOR) ISSUED BY ]]>
       </ReportContent>
    </root>
    XML;
    $dom = new DOMDocument;
    $dom->loadXML($xml);
    $domxpath = new DOMXPath($dom);
    $node     = $domxpath->query("//root/ReportContent");
    echo checkIfGotCdata($node->item(0)->childNodes);
    //检测是否含有cdata section节点
    function checkIfGotCdata(&$node)
    {
    foreach($node as $k=>$v)
    {
    if($v->nodeType == XML_CDATA_SECTION_NODE)
    {
    return true;
    }
    }
    return false;
    }
      

  3.   

    $node as $k=>$v  $k=>$v 这个是什么类型啊?