Hier ist eine schnelle für jeden, der mit dem Parsen von XML in C#Abrufen von XML-Knoten-Attribute und Werte
Ich habe eine XML-Datei wie folgt;
<?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>
Ich möchte nur die Attribute lesen, und den Namen analysiert beispiel „Port“, sondern auch den Wert gesetzt, in diesem Fall „4050“ abgerufen wird.
Ich habe ein kleines Code-Snippet, das die Knoten zur Konsolenausgabe zurückgibt;
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();
Und auch eine kleine Klasse, die ich dachte, wäre praktisch, um die Liste der Ergebnisse zu speichern;
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; }
}
Haftungsausschluss:
ich die meisten Lösungen auf hier und auf anderen Websites recherchiert haben, aber es ist zu klicken, nicht nur für mich im Moment. Ich weiß, es ist einfacher als ich denke und Sie können XPath, Linq etc. verwenden, aber jede Hilfe für dieses spezielle Problem wäre sehr willkommen.
Wenn Sie irgendwelche Vorschläge für den besten Weg für mich haben, in Zukunft für die Arbeit mit XML zu nehmen, bin ich offen für Vorschläge auch, da es etwas ist, mit dem ich in der Vergangenheit gekämpft habe, zB Linq oder XPath oder alle verwenden Sie?
Prost
Ihr xml-Beispiel ist fehlerhaft, den Abschnittsgruppen- und Abschnittselementen fehlen die doppelten Anführungszeichen in ihren Attributwerten. – Veverke
Ich musste es anonymisieren, aber trotzdem gut erkennen. – Supernatix