当时,一个CDATA转换器是在网上找到的。改性后的CDATA标签过滤进来如下
复制代码代码如下所示:
/状态:

/ / out
< <
< <
< < <!
!
cd!
< / {提出'!
< / { CDATA!
/ /
}
}

(是的,用字符串表示状态)。

$国家= out;
美元= str_split($ XML);
new_xml美元=;
foreach($一$ K = $ V){
处理状态。
开关($状态){
case'out:
如果(< = = v){
美元=国家;
{人}
new_xml美元= $ V;
}
打破;
案例< <:
如果(!= $ v){
$状态= $状态。$ V;
{人}
new_xml美元美元美元V;
$国家= out;
}
打破;
<:
如果({ = $ = v){
$状态= $状态。$ V;
{人}
new_xml美元美元美元V;
$国家= out;
}
打破;
<案例:
如果(C = = $ V){
$状态= $状态。$ V;
{人}
new_xml美元美元美元V;
$国家= out;
}
打破;
案例{:
如果(= $ v){
$状态= $状态。$ V;
{人}
new_xml美元美元美元V;
$国家= out;
}
打破;
案例{ CD<:
如果(a = = $ V){
$状态= $状态。$ V;
{人}
new_xml美元美元美元V;
$国家= out;
}
打破;
情况>:
如果(= = $ v){
$状态= $状态。$ V;
{人}
new_xml美元美元美元V;
$国家= out;
}
打破;
案例{ CDAT<:
如果(a = = $ V){
$状态= $状态。$ V;
{人}
new_xml美元美元美元V;
$国家= out;
}
打破;
案例{ CDATA<:
如果({ = $ = v){
一美元=;
状态=美元;
{人}
new_xml美元美元美元V;
$国家= out;
}
打破;
case'in:
如果(}= $ v){
美元=国家;
{人}
一美元= $ V;
}
打破;
案例}:
如果(}= $ v){
$状态= $状态。$ V;
{人}
一美元- $State$ V;
状态=美元;
}
打破;
案例}:
如果(> = = v){
new_xml美元= htmlentities(合一);
# new_xml美元,一美元;
/ / $ new_xml = str_replace(>、>,
str_replace(<或>,
/ / str_replace(' ',' ',
/ / str_replace(' ',' ',
/ / $ CDATA))));
$国家= out;
{人}
一美元- $State$ V;
状态=美元;
}
打破;
开关
}

返回。

返回的new_xml;

最近,发现总是有警报发出,说SimpleXML解析是错误的。

发现原始XML数据是。有3个连续},导致上述解析函数不能被处理。

而且很难修复它。你不知道下一次会不会有4, 5个。

因此,决定将解析的代码替换为DOM XML,DOM本身的处理相对简单。

包括domelement,DOMDocument domnodelist,domnode几个组件。

DOMNode,有节点,节点类型的成员函数,以及它们。

首先,我是用来转换字符串为DOMDocument副图像,然后转化为相对应的是domnodelist配对,然后->项目(0)转化为domnode,然后以上三种方法可以用。

对于测试的XML标签,使用属性函数。