XmlDocument的loadXml()方法一直抛错
这个是错误信息:用过好几种方法(command是一个xml的字符串)
XmlDocument doc=new XmlDocument();
1.用loadXml方法,抛错:“.”(十六进制值 0x00)是无效的字符
doc.loadXml(command);
2.用load方法 也是抛上面的问题
byte[] buffer = Encoding.UTF8.GetBytes(command);
MemoryStream ms = new MemoryStream(buffer);
ms.Flush();
ms.Position = 0;
doc.Load(ms);
3.用innerXnl也是如果改变编码,则抛错:根级别上的数据无效该怎么解决呢?
这个是错误信息:用过好几种方法(command是一个xml的字符串)
XmlDocument doc=new XmlDocument();
1.用loadXml方法,抛错:“.”(十六进制值 0x00)是无效的字符
doc.loadXml(command);
2.用load方法 也是抛上面的问题
byte[] buffer = Encoding.UTF8.GetBytes(command);
MemoryStream ms = new MemoryStream(buffer);
ms.Flush();
ms.Position = 0;
doc.Load(ms);
3.用innerXnl也是如果改变编码,则抛错:根级别上的数据无效该怎么解决呢?
第一,可能不符合xml规范
第二,你改变xmldocument的编码试试
我也觉得是编码的问题,但是现在编码我试了好多个了,总是抛错
<?xml version="1.0" ?><request><command name="KEEPALIVE"></command></request>
private string ReplaceLowOrderASCIICharacters(string tmp)
{
StringBuilder info = new StringBuilder();
foreach (char cc in tmp)
{
int ss = (int)cc;
if (((ss >= 0) && (ss <= 8)) || ((ss >= 11) && (ss <= 12)) || ((ss >= 14) && (ss <= 32)))
info.AppendFormat(" ", ss);
else info.Append(cc);
}
return info.ToString();
}