[c#] Lokale XML auslesen/filtern.

d-Stench

Erfahrenes Mitglied
Hallo Gemeinde.

Ich weis nicht, ob ich unter [.NET > .NET Datenverwaltung] richtig bin, doch ich versuche es trotzdem. (@Moderator: bitte verschieben, falls ich falsch bin!)

Ich möchte eine XML-Datei, die auf dem lokalen Laufwerk liegt mit C#´(WindowsAnwendung) auslesen. Wie gehe ich dabei vor?
Gibt es etwas äquivalentes zu:

Code:
OleDbConnection dbConnect = new OleDbConnection("connectString");
OleDbCommand dbComm = new OleDbCommand("SELECT * FROM tabelle WHERE id=5", dbConnect);

dbConnect.Open();
OleDbDataReader dbRead = dbComm.ExecuteReader();
while(dbRead.Read())
{
   MessageBox.Show(dbRead.GetValue(0).ToString());
}
dbRead.Close();
dbConnect.Close();

aber um XML-Dateien auszulesen? Hab das Buch "XML Schritt für Schritt", doch dieses bezieht sich nur auf WebAnwedungen.

Bin für jede Hilfe DANKBAR

Gruß
d-Stench
 
Code:
using System.Xml;
.
.
.
string myFilename = @"C:\temp\temp.xml";
XmlDocument doc = new XmlDocument();
doc.Load(myFilename);
XmlNodeList xnl = doc.SelectNodes("/");
XmlNode xn = doc.SelectSingleNode("/root/settings/test");
if (xn != null)
    Console.WriteLine(xn.InnerText);
Und dann gibt's auch noch den XmlTextReader.
 
Schau Dir mal den System.Xml Namespace an.
Dort findest das komplette XML-DOM-Equivalent in .NET.
XmlDocument repräsentiert ein Xml-File.
XmlNode repräsentiert ein Xml-Element.
Und XmlAttribute repräsentiert ein Xml-Attribut.

Alles wirklich einfach zu verstehen und zu verwenden. Geh mal auf the CodeProject http://www.codeproject.com und gib mal XML ein.
Dann findest erst mal alles nötige für die ersten Grundlagen. Ließ Dich ein bevor Du hier weiter nachfragst.
Es gibt auch ein paar Threads zum Thema hier im Forum...
 
Danke für Eure Beiträge! Ihr habt mir weiter geholfen!

Jetzt hab ich den Faden, den ich gesucht habe... Den Rest sollte ich jetzt alleine schaffen.!

Gruß
d-Stench
 
Kann mir jemand iwie auf die Sprünge helfen?

Ich würde nun gerne nach dem gleichem Muster aus folgenden RSS Feed alle <item> Elemente in ein mehrdemensionales Array esen:

<rss version="2.00">
<channel>
<title>BitTorrent files for #adc</title>
<link>http://adc.edwardk.info//index.php</link>
<description>BitTorrent files for #adc @ Rizon</description>
<lastBuildDate>Thu, 14 Dec 2006 00:27 GMT</lastBuildDate>
<pubDate>Thu, 14 Dec 2006 00:27 GMT</pubDate>
<ttl>30</ttl>
<item>
<title>(2006-12-13 19:26) [ADC-Elites] One Piece 289 [CDDC3D98].avi</title>
<link>http://adc.edwardk.info/%5BADC-Elites%5D_One_Piece_289_%5BCDDC3D98%5D.avi.torrent</link>
<description>2006-12-13 19:26 [ADC-Elites] One Piece 289 [CDDC3D98].avi (233.45 MiB)</description>
</item>
</channel>
</rss>

Das Array sollte dann so aussehen:

array["item1"] => {
"title" => <title1>
"link" => <link1>
"description" => <description1>
}
array["item2"] => {
"title" => <title2>
"link" => <link2>
"description" => <description2>
}

Usw

Bin hier voll am Verzweifeln :(
 
Wo genau liegt das Problem?
Und wieso willst du das in einem Array haben? Hier würden sich andere Lösungen anbieten ...
 
Also Ziel ist es, das array in einer .txt datei abzulegen.
Und beim nächsten Aufruf zu überprüfen,
ob es im RSS Feed ein neues <item> gibt.
Wenn ja => ausgabe auf der Console, öffnen des Standartbrowsers mit dem jeweiligen Link
 
Wieso denn in ein Array und dann in ein Textfile?

Schreib doch die Daten in ein eigenes XML-File inklusive Link auf den tatsächlichen Beitrag? Damit bist wesentlich besser unterwegs.
 
Zurück