如何在web.config中添加xml
本文关键字:添加 xml config web | 更新日期: 2023-09-27 18:27:42
我有一些复杂的数据,用于xml格式的应用程序配置。我想把这个xml字符串保存在web.config中。是否可以在web.config添加一个大的xml字符串并将其放在代码中?
如果您不想编写配置节处理程序,您可以将XML放在映射到IgnoreSectionHandler
:的自定义配置节中
<configuration>
<configSections>
<section
name="myCustomElement"
type="System.Configuration.IgnoreSectionHandler"
allowLocation="false" />
</configSections>
...
<myCustomElement>
... complex XML ...
</myCustomElement>
...
</configuration>
然后,您可以使用任何XML API读取它,例如XmlDocument
、XDocument
、XmlReader
类。例如:
XmlDocument doc = new XmlDocument();
doc.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
XmlElement node = doc.SelectSingleNode("/configuration/myCustomElement") as XmlElement;
... etc ...
有几种方法可以实现您想要的(应用程序代码可以全局静态访问的XML片段):
-
web.config
已经是一个XML文件。您可以编写一个自定义配置部分(如本文所述),以便从自定义XML中获取数据。 -
您可以对XML数据(所有
<
到<
、>
到>
、&
到&
、"
到"e;
)进行编码 -
您可以将XML数据放在
<![CDATA[]]>
部分中 -
不要使用
web.config
,而是使用一个Settings
文件作为@Yuck评论的
就易于开发和使用而言,最后一个选项是最好的。
web.config中的配置节支持长字符串,但字符串必须是单行文本,这样它们才能放入属性:
<add name="" value="... some very long text can go in here..." />
字符串也不能包含引号、换行符或其他XML标记字符。数据基本上是XML,必须对其进行适当的编码。
例如,如果您有这样的XML:
<root>
<value>10</value>
</root>
它必须存储在这样的配置值中:
<add key="Value" value="<root>
 <value>10</value>
</root>" />
哪种会破坏配置元素的目的。
您最好将配置值存储在文件系统上的一个单独文件中,并将其读取到字符串或XmlDocument等中。