问题描述
在通过工具修改Xml内容后,在通过doc.Save(file_path,SaveOptions.None);保存修改内容时,
工具崩溃报错信息为:
System.ArgumentException:““.”(十六进制值 0x00)是无效的字符。”
问题分析
1. 重新整改xml 文件整体格式(参考其他博主,未验证)
“.”(十六进制值 0x00)是无效的字符解决方案 - 大朋展翅 - 博客园 (cnblogs.com)
遇到该问题,check了很多博主总结,大致相同,如链接内写的,可以通过正则表达式直接匹配有问题的字符,然后修改格式,请各位网友可以尝试验证
2. 过滤“\0”字符 (亲测有效,问题解决)
在进行UnitTest时,通过将设定好的字符串修改至xml时是没有问题的,但是在进行工具测试时会有问题,在通过对比时,工具写入的字符串是通过别的路径获得的,通过工具单步调试,该字符串多带一个“\0”,所以使用 value = value.Replace("\0", "");后该问题可以得到解决,问题消失且字符可以正常写入xml文件当中
问题总结
1.使用UnitTest 做基本功能测试可以确认基本功能
2.该问题大概率和修改xml数据相关,若写代码的你遇到类似问题,不如把数据都看一看,看看是不是有‘\0’字符多出来