// states: // // 'out' // ' $v) { // deal with state. switch ( $state ) { case 'out': if ( '' == $v ) { $new_xml .= htmlentities($cdata);# $new_xml.= $cdata;// $new_xml .= str_replace('>','>', // str_replace('>','
最近发现,总是有alert发出来, 说是simplexml解析出错。
发现是原来有xml的数据是]]]>. 出现了连续的3个], 造成上面的解析函数不能处理。
而且这个问题很难修正, 你不知道下次会不会有4, 5个]出现。
所以决定还是将这段解析 的代码换成dom xml,本身 dom的处理还是比较简单的,
包含domelement, domdocument, domnodelist, domnode几个 component.
对于 domnode有nodevalue, nodetype, nodename的成员函数。
首先先用loadxml将string转化为domdocument对像, 再用getelementsbytagname转化为domnodelist对像, 再使用->item(0)转化为domnode, 然后就可以使用上面的三种方法了。