【发布时间】:2019-01-19 06:27:22
【问题描述】:
我有这个代码的xml文件
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
<applicationSettings>
<GlobalERP.UI.Properties.Settings>
<setting name="SQLServerIP" serializeAs="String">
<value>192.168.1.1</value>
</setting>
<setting name="SQLUserName" serializeAs="String">
<value>sa</value>
</setting>
<setting name="SQLPassword" serializeAs="String">
<value>123</value>
</setting>
<setting name="SQLDBName" serializeAs="String">
<value />
</setting>
</GlobalERP.UI.Properties.Settings>
</applicationSettings>
</configuration>
如何通过代码反序列化并按名称获取值,例如“SQLServerIP”或“SQLUserName”,并在没有 System.Configuration 的情况下读取行?
【问题讨论】:
-
通过读取所有字符串不使用 System.Configuration
-
这不是格式良好的 XML,尝试将其上传到 xmlvalidation.com 会出错。话虽如此,如果您只需要快速解析一些 XML 并选择一些值,则可以使用 LINQ to XML;见How does one parse XML files? 或LINQ to read XML。
-
@xxxsenatorxxx - 哪个链接?我发了两个。无论如何,使用LINQ to XML,您可以查询深度嵌套的元素,如LINQ to XML extract nested elements、LINQ to XML nested elements query 或Accessing nested elements while iterating an XML LINQ query? 所示。如果这些一般性答案还不够,也许您可以提供minimal reproducible example?
-
如果你想根据属性值查询嵌套元素(例如
name="SQLServerIP"),请参阅LINQ to XML - Get element based on a nested elements value 或Parsing XML Files in .NET。