XML输出总是没有encoding属性?

Oliver_Ye 2009-08-07 04:33:49
<?xml   version="1.0"   encoding="UTF-8"?>   
<Order>
<Item number="1">
<SKU>12345</SKU>
<Description>Standard Widget</Description>
</Item> .....
<Order>


xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load("test.xml");
alert(xmlDoc.xml);



为什么显示出来的头文件只有<?xml version="1.0" ?> , 没有encoding="UTF-8",这是为什么,因为这个问题,导致我保存中文数据时就出错,保存后的XML里没有头文件。
是什么原因导致这个问题的呢?

我想尝试人为在保存后的XML里添加头文件,但是不知道怎么在XML开始处添加这个头文件?
...全文
152 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
hookee 2009-08-07
  • 打赏
  • 举报
回复

var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0");
xmlDoc.async = false;
xmlDoc.resolveExternals = false;
xmlDoc.loadXML("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\
<Order>\
<Item number=\"1\">\
<SKU>12345</SKU>\
<Description>Standard Widget</Description>\
</Item>\
</Order>");
if (xmlDoc.parseError.errorCode != 0) {
var myErr = xmlDoc.parseError
alert("You have error " + myErr.reason);
} else {
alert(xmlDoc.xml);
}

formatDoc(xmlDoc, "d:\\test1.xml");


function formatDoc(oDoc, sFilename){
var oSAXWriter, oSAXReader;

oSAXWriter = new ActiveXObject("Msxml2.MXXMLWriter");
oSAXReader = new ActiveXObject("Msxml2.SAXXMLReader");
with(oSAXWriter){
encoding = "UTF-8";
byteOrderMark = true;
standalone = true;
omitXMLDeclaration = false;
indent = true;
}
with(oSAXReader){
contentHandler = oSAXWriter;
dtdHandler = oSAXWriter;
errorHandler = oSAXWriter;
putProperty("http://xml.org/sax/properties/lexical-handler", oSAXWriter);
putProperty("http://xml.org/sax/properties/declaration-handler", oSAXWriter);
parse(oDoc);
}
var s = oSAXWriter.output;
s = s.replace(/encoding\="UTF\-16"/,"encoding=\"UTF-8\"");
var fso = new ActiveXObject("Scripting.FileSystemObject")
var file = fso.OpenTextFile(sFilename,2,true,-1)
file.Write(s);
file.Close();
}


8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧