解决方案1: http://blog.csdn.net/lilien1010/article/details/8793949 原来php文件保存问uft8式是会输出另外的空白字符, 将输出xml流的php文件修改为ansi式的就好了。 (测试失败...) 解决方案2: 在调用echo $dom-savexml(); 之前先清空输出缓冲区 ob_c
解决方案1:
http://blog.csdn.net/lilien1010/article/details/8793949
原来php文件保存问uft8格式是会输出另外的空白字符, 将输出xml流的php文件修改为ansi格式的就好了。
(测试失败...)
解决方案2:
在调用 echo $dom->savexml(); 之前先清空输出缓冲区
ob_clean();//for kill blank in document at first char
(测试ok)
备注:本人的版本php4.8+apache2.2,可能版本不同,解决方案不同
********************************************************************************************
附:js解析xml文件和xml字符串
http://www.cnblogs.com/chjw8016/archive/2011/07/12/2104269.html
js解析xml文件
script type='text/javascript'>
loadxml = function(xmlfile){
var xmldoc=null;
//判断浏览器的类型
//支持ie浏览器
if(!window.domparser && window.activexobject){
var xmldomversions = ['msxml.2.domdocument.6.0','msxml.2.domdocument.3.0','microsoft.xmldom'];
for(var i=0;ixmldomversions.length;i++){
try{
xmldoc = new activexobject(xmldomversions[i]);
break;
}catch(e){
}
}
}
//支持mozilla浏览器
else if(document.implementation && document.implementation.createdocument){
try{
/* document.implementation.createdocument('','',null); 方法的三个参数说明
* 第一个参数是包含文档所使用的命名空间uri的字符串;
* 第二个参数是包含文档根元素名称的字符串;
* 第三个参数是要创建的文档类型(也称为doctype)
*/
xmldoc = document.implementation.createdocument('','',null);
}catch(e){
}
}
else{
return null;
}
if(xmldoc!=null){
xmldoc.async = false;
xmldoc.load(xmlfile);
}
return xmldoc;
}
/script>
js解析xml字符串
script type='text/javascript'>
loadxml = function(xmlstring){
var xmldoc=null;
//判断浏览器的类型
//支持ie浏览器
if(!window.domparser && window.activexobject){ //window.domparser 判断是否是非ie浏览器
var xmldomversions = ['msxml.2.domdocument.6.0','msxml.2.domdocument.3.0','microsoft.xmldom'];
for(var i=0;ixmldomversions.length;i++){
try{
xmldoc = new activexobject(xmldomversions[i]);
xmldoc.async = false;
xmldoc.loadxml(xmlstring); //loadxml方法载入xml字符串
break;
}catch(e){
}
}
}
//支持mozilla浏览器
else if(window.domparser && document.implementation && document.implementation.createdocument){
try{
/* domparser 对象解析 xml 文本并返回一个 xml document 对象。
* 要使用 domparser,使用不带参数的构造函数来实例化它,然后调用其 parsefromstring() 方法
* parsefromstring(text, contenttype) 参数text:要解析的 xml 标记 参数contenttype文本的内容类型
* 可能是 text/xml 、application/xml 或 application/xhtml+xml 中的一个。注意,不支持 text/html。
*/
domparser = new domparser();
xmldoc = domparser.parsefromstring(xmlstring, 'text/xml');
}catch(e){
}
}
else{
return null;
}
return xmldoc;
}
/script>
测试xml
xml version=1.0 encoding=utf-8 ?>
dongfang>
company>
cnname>1cnname>
cip>1cip>
company>
company>
cnname>2cnname>
cip>2cip>
company>
company>
cnname>3cnname>
cip>3cip>
company>
company>
cnname>4cnname>
cip>4cip>
company>
company>
cnname>5cnname>
cip>5cip>
company>
company>
cnname>6cnname>
cip>6cip>
company>
dongfang>
使用方法
var xmldoc=loadxml(text.xml)
var elements = xmldoc.getelementsbytagname(company);
for (var i = 0; i var name = elements[i].getelementsbytagname(cnname)[0].firstchild.nodevalue;
var ip = elements[i].getelementsbytagname(cip)[0].firstchild.nodevalue;
}