Это быстрый способ для всех, кто знаком с разбором XML в C#Получение атрибутов и значений узлов XML
У меня есть XML-файл, как показано ниже;
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral >
<section name="Proxy.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral />
</sectionGroup>
</configSections>
<applicationSettings>
<Proxy.Properties.Settings>
<setting name="MaxLogs" serializeAs="String">
<value>10</value>
</setting>
<setting name="MaxArchives" serializeAs="String">
<value>3</value>
</setting>
<setting name="IpAddress" serializeAs="String">
<value>COMPUTER2</value>
</setting>
<setting name="Port" serializeAs="String">
<value>4050</value>
</setting>
<setting name="Index" serializeAs="String">
<value>0</value>
</setting>
</Proxy.Properties.Settings>
</applicationSettings>
</configuration>
Я просто хочу, чтобы прочитать атрибуты и разбора из названия например «Port», но и получить установленное значение, в данном случае «4050».
У меня есть небольшой фрагмент кода, который возвращает узлы для вывода на консоль;
string path = "C:\\Path\\To\\XML.exe.config";
XDocument xdoc = new XDocument();
xdoc = XDocument.Load(path);
var jproxy = xdoc.DescendantNodes();
foreach (var dn in jproxy)
{
Console.WriteLine(dn.NextNode);
}
Console.ReadLine();
А также небольшой класс, который, как я думал, будет удобен для хранения списка результатов;
public class Proxy
{
public string MaxLogs { get; set; }
public string MaxArchives { get; set; }
public string IPAddress { get; set; }
public string Port { get; set; }
public string Index { get; set; }
}
Отказ от ответственности:
Я исследовал большинство решений, доступных на здесь и на других сайтах, но это просто не нажав для меня в данный момент. Я знаю, что это проще, чем я думаю, и вы можете использовать XPath, Linq и т. Д., Но любая помощь для этой конкретной проблемы была бы высоко оценена.
Если у вас есть предложения по лучшему пути для меня в будущем для работы с XML, я также открыт для предложения, поскольку в прошлом я боролся с этим, например, используя Linq или XPath или все их?
Приветствия
Ваш образец xml неверен, элементы группы разделов и секции не имеют закрывающих двойных кавычек в своих значениях атрибутов. – Veverke
Мне пришлось анонимизировать его, но все-таки неплохо. – Supernatix