谁能帮我解释一下这个将XML转为数组的函数
时间:2010-09-16
来源:互联网
ASP代码,下面这个代码是将接受到的XML转为数组。
'函数名: loadxml
'作 用: xml数据转成数组
'参 数: code : xml数据源
'返回值: 数组
Function loadxml(code)
Dim xml, objNodem, i, objNode, nCntChd
Set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = False
xml.loadxml code
If xml.parseError.errorCode <> 0 Then
loadxml = Split("-99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0",",")
Exit Function
End If
Set objNode = xml.documentElement
nCntChd = objNode.ChildNodes.length - 1
For i = 0 To nCntChd
loadxml = loadxml & urldecode(xml.documentElement.childNodes(i).text) & ","
Next
loadxml = Left(loadxml,Len(loadxml)-1)
Set xml = Nothing
loadxml = Split(loadxml,",")
End Function
问题如下,如果返回的数组中有中文,那么则显示-99,0,0,……,如果是英文加数字就不会,怀疑是编码问题,这是返回XML返回的代码,是PHP代码,我将里面的encoding=\"GB2312\换成UFT等编码,均无用
function xml_serialize($arr, $htmlon = FALSE, $isnormal = FALSE, $level = 1) {
$s = $level == 1 ? "<?xml version=\"1.0\" encoding=\"GB2312\"?>\r\n<root>\r\n" : '';
$space = str_repeat("\t", $level);
foreach($arr as $k => $v) {
if(!is_array($v)) {
$s .= $space."<item id=\"$k\">".($htmlon ? '<![CDATA[' : '').$v.($htmlon ? ']]>' : '')."</item>\r\n";
} else {
$s .= $space."<item id=\"$k\">\r\n".xml_serialize($v, $htmlon, $isnormal, $level + 1).$space."</item>\r\n";
}
}
$s = preg_replace("/([\x01-\x09\x0b-\x0c\x0e-\x1f])+/", ' ', $s);
return $level == 1 ? $s."</root>" : $s;
}
'函数名: loadxml
'作 用: xml数据转成数组
'参 数: code : xml数据源
'返回值: 数组
Function loadxml(code)
Dim xml, objNodem, i, objNode, nCntChd
Set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = False
xml.loadxml code
If xml.parseError.errorCode <> 0 Then
loadxml = Split("-99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0",",")
Exit Function
End If
Set objNode = xml.documentElement
nCntChd = objNode.ChildNodes.length - 1
For i = 0 To nCntChd
loadxml = loadxml & urldecode(xml.documentElement.childNodes(i).text) & ","
Next
loadxml = Left(loadxml,Len(loadxml)-1)
Set xml = Nothing
loadxml = Split(loadxml,",")
End Function
问题如下,如果返回的数组中有中文,那么则显示-99,0,0,……,如果是英文加数字就不会,怀疑是编码问题,这是返回XML返回的代码,是PHP代码,我将里面的encoding=\"GB2312\换成UFT等编码,均无用
function xml_serialize($arr, $htmlon = FALSE, $isnormal = FALSE, $level = 1) {
$s = $level == 1 ? "<?xml version=\"1.0\" encoding=\"GB2312\"?>\r\n<root>\r\n" : '';
$space = str_repeat("\t", $level);
foreach($arr as $k => $v) {
if(!is_array($v)) {
$s .= $space."<item id=\"$k\">".($htmlon ? '<![CDATA[' : '').$v.($htmlon ? ']]>' : '')."</item>\r\n";
} else {
$s .= $space."<item id=\"$k\">\r\n".xml_serialize($v, $htmlon, $isnormal, $level + 1).$space."</item>\r\n";
}
}
$s = preg_replace("/([\x01-\x09\x0b-\x0c\x0e-\x1f])+/", ' ', $s);
return $level == 1 ? $s."</root>" : $s;
}
作者: voolezhang2 发布时间: 2010-09-16
看一下PHP返回时的头信息,是否和编码设置一致。
作者: icy_csdn 发布时间: 2010-09-16
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28