问题描述
通过XMLDocument对象Load某个xml文件时,遇到了一个不常见的引发异常的情况,那就是xml文档的元素
的首字符为了数字,如下图所示,root根元素的子元素为 2
或 2fqaa
。
如果加载Load这个xml文件,会出现以下异常:
解决方法
在xml写入元素时,做数据类型检查,判断元素的首字符是否为数字。可在元素前加一个临时的字符开头的前缀和数字拼接。
//如果元素字符开头为数字,前面加一个字符tmp
private static string addTmpPrefix(string elementOfxml)
{//xml元素不能以数字开头
if (elementOfxml.Length > 0 && Char.IsDigit(elementOfxml[0]))
return "tmpAddPrefix" + elementOfxml;
return elementOfxml;
}
private static string removeTmpPrefix(string elementOfxml)
{
//xml元素开头为tmpAddPrefix,移除写入时加入的
if (elementOfxml.Length > 0 &&
elementOfxml.IndexOf("tmpAddPrefix",StringComparison.Ordinal)!=-1)
{
elementOfxml = elementOfxml.Replace("tmpAddPrefix","");
}
return elementOfxml;
}