【发布时间】:2017-10-27 20:42:25
【问题描述】:
我有一个与此类似(在此处编辑)的 Xml 文档:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="WebApptNotificationService.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<connectionStrings>
removed for questions
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<system.net>
<mailSettings>
<smtp deliveryMethod="SpecifiedPickupDirectory">
<specifiedPickupDirectory pickupDirectoryLocation="C:\test\"/>
</smtp>
</mailSettings>
<mailSettings>
<smtp from="xxxxx@xxxxxx.com">
<network host="mail.xxxxxxxx.com" enableSsl="true" password="xxxxxx" port="xxx" userName="xx@xxxxxxxx.com"/>
</smtp>
<smtp from="No.Reply@xxxxxxxxxx.org">
<network host="1stmsmail.xxxx.local" enableSsl="true" password="xxxxxxx" port="587" userName="ouruser"/>
</smtp>
</mailSettings>
</system.net>
<applicationSettings>
<WebApptNotificationService.Properties.Settings>
<setting name="ConfirmationInterval" serializeAs="String">
<value>60000</value>
</setting>
<setting name="EmailFromName" serializeAs="String">
<value>Test</value>
</setting>
<setting name="EmailFromAddress" serializeAs="String">
<value>mobile@xxxxx.com</value>
</setting>
<setting name="DaysBeforeReminder" serializeAs="String">
<value>2</value>
</setting>
<setting name="MinTextMinute" serializeAs="String">
<value>480</value>
</setting>
<setting name="MaxTextMinute" serializeAs="String">
<value>1200</value>
</setting>
</WebApptNotificationService.Properties.Settings>
</applicationSettings>
</configuration>
我正在尝试读取使用以下代码的值:
private string parseXML(string name)
{
string returnVal = string.Empty;
XmlDocument xmlDoc = xmlFile.SettingXML;
//returnVal = xmlDoc.GetElementsByTagName(name).ToString();
XmlNode node = xmlDoc.SelectSingleNode("//configuration//applicationSettings//WebApptNotificationService.Properties.Settings//setting");
MessageBox.Show(node.ToString());
//returnVal = xmlDoc.DocumentElement.Name.(x => x.Element("Author"));
return returnVal;
}
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim xdoc As XDocument = XDocument.Load(FILENAME)
Dim versions As IEnumerable(Of XElement) = xdoc.Descendants("Version")
For Each version As XElement In versions
For Each trunk As XElement In version.Elements("Trunk")
Console.WriteLine(CType(trunk, String))
ComboBox1.Items.Add(CType(trunk, String))
Next trunk
For Each xEle As XElement In version.Elements("Branch")
Console.WriteLine(CType(xEle, String))
ComboBox2.Items.Add(CType(xEle, String))
Next xEle
Next version
End Sub
现在 xmlFile.SettingXML 是一个从配置文件创建的类。它被存储为一个类。我想根据传入的名称从设置名称中获取值。看起来好像我失败得很惨。如果有人能指出我处理这个问题的正确方法,我将不胜感激。
编辑:正如所指出的那样悲惨地失败并不能描述这个问题。现在我在 Messagebox 中获取 System.Xml.XmlElement。
【问题讨论】:
-
您的项目中的
Properties文件夹下似乎有一个Settings.settings文件。为什么不使用它? -
是的惨遭失败是一个描述性很强的问题定义
-
Reza Aghaei,我正在读取一个不属于项目的配置文件。
-
我考虑过,但是我还需要阅读邮件设置。还要记住,Xml 文件对于应用程序来说是陌生的。应用程序将读取值并将它们移动到数据库中。