在开发.NET项目时如果有用到配置文件,一定要注意特殊符号的转义问题。按照XML规范,类似"&"和"<"的字符在XML中都是有特殊含义,比如"<"是作为XML中用于声明元素的语法。我曾在属性值中使用了"&"符号导致VS编译生成失败,提示:应用程序配置文件"App.config/Web.config"无效。分析EntityName时出错。
首先要明确一点,App.config和Web.config本身就是XML文档,所以必须要遵循XML的规范!
特殊符号在XML文档中会有错误提示:
错误列表截图:
错误信息文本:
未定义实体"*"
应用程序配置文件“App.config”无效。分析 EntityName 时出错。 第 7 行,位置 85….
字符“*”(十六进制值 0x31)在 XML 名称中是非法的…
先说下解决方法,就是要将特殊字符进行转义,按照XML的规范,特殊字符一共有:"<",">","&","'" ,'"'。这是转义对照表,"&"要转义成"<":
< | < | 小于 |
> | > | 大于 |
& | & | 与 |
' | ' | 单引号 |
" | " | 双引号 |
通过转义后使用特殊字符就不会在报错了,项目生成成功!另外错误提示中的web.config和app.config是根据应用程序类型来显示的(WEB应用程序和桌面应用程序)。
一般来说使用XML很少出现非法字符的错误,除非像我一样,由于测试数据库的密码为"test&123",没有进行转义才会引发错误,或者是不小心添加或修改了配置文件,导致有非法字符。
总结和分享下其他关于XML特殊字符的文档
维基百科
w3schools
w3school
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/98897.html