XML kiolvasás C# nyelven

Sziasztok!

Tudom, hogy nem teljesen ide tartozik, csak az XML miatt írtam ide.

Szóval van egy XML fájlom és abóól szeretném kiolvasni az < Import_tabla > elem < Import > eleminek a mezőinek az értékét.

És ugyanezzel a módszerrel szeretném kiolvasni az < Adasba_lista > -t is.

http://mysteryke.extra.hu/sajat.xml

Kutakodtam a neten, de elég sok módszert találtam, amelyekbe sikerült teljesen belezavarodnom, és egyik példában sem szerepelt hasonló szerkezetü XML fájl.

Valami egyszerü megoldást szeretnék kérni tőletek.

Köszi.
MysteryKe.

U.i.: Microsoft Visual Studio 2005 Professional-al fejlesztek .NET Framework 2.0 -val, C# nyelven.

Tudom, tudom,... én is szívesebben C++ -oznék, de ezt tanítják nekünk, ezt kell szeretni. :((((

Hozzászólások

xpath

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

Köszi Elbandi!
Örök hálám!

string fileName = Application.StartupPath + @"\sajat.xml";
XPathDocument doc = new XPathDocument(fileName);
XPathNavigator nav = doc.CreateNavigator();

// Compile a standard XPath expression

XPathExpression expr;
expr = nav.Compile("/BCS/Import_tabla");
XPathNodeIterator iterator = nav.Select(expr);

// Iterate on the node set

lbxVideos.Items.Clear();
try
{
while (iterator.MoveNext())
{
XPathNavigator nav2 = iterator.Current.Clone();

lbxVideos.Items.Add(nav2.Value);

}
}

Ma is bement egy kövér nő a cipőboltba? :D
Bocsi, ezt nem hagyhattam ki. Imádom a sorozatot :D:D

U.i.: És még egyszer köszi.

ápr. 30-ig börkötéssel meg minden fityfenével le kell adnom a szakdogámat...
Jobb később XML-ezni, mint soha.. :D

Ha nem akarsz külön függőséget behozni, akkor a System.Xml névtérben lévő osztályokat használva érdemes xml-t parszolni. Ez
az alaprendszer része és mono platformon is tökéletesen működik:

// Az si változó egy listener, akinek az xml eseményeket passzoljuk. A passzolás helyett persze a konkrét feldolgozást is beírhatnánk.

XmlReader read = new XmlTextReader(url);

while (read.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
{
si.startElement("", read.LocalName, read.LocalName, null);
break;
}
case XmlNodeType.Text:
{
char[] chs = read.Value.ToCharArray();
si.characters(chs, 0, chs.Length);
break;
}
case XmlNodeType.EndElement:
{
si.endElement("", read.LocalName, read.LocalName);
break;
}
}
}

A kódot innen másoltam ki, itt egy olyan osztály van, ami a Javás SAX parzer API-t valósítja meg a .NETes könyvtárra építve:
http://yamamap.svn.sourceforge.net/viewvc/yamamap/yamaMono/yamaMono/src…

Nah...!
Még a reggelt sem kellett megvárnom.

Hogyan lehet a mezők értékeit különválasztani? ugyértem, hogy kiolvasáskor egyenként olvashassunk ki a mezőkből.

Mert a fenti kód, ami működött végre, az azt csinálja, hogy egy stringbe olvassa ki a 3 mező adatait, amit már nem lehet jól kezelni.

0C:\video1.avi0 nekem nem igazn jó
Külön változókba akarom beolvasni őket. PL:
sorszamLabel.Text: 0
urlLabel.Text: C:\video1.avi
kategoriaLabel: 0

??

XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load("http://mysteryke.extra.hu/sajat.xml");

XmlNodeList importNodes = xmlDocument.SelectNodes("/BCS/Import_tabla/Import");

foreach (XmlNode actualNode in importNodes)
{
    Console.WriteLine(actualNode["Sorszam"].InnerText);
    Console.WriteLine(actualNode["URL"].InnerText);
    Console.WriteLine(actualNode["Kategoria"].InnerText);
}

Egyébként milyen külső körülmény akadályoz, hogy C++-ozz?

Az idő. C# nyelven írom a szakdogámat.
Éveken struktúrált programozást tanultam.

Tavaly fél évig Pascal, majd fél évig C-t tanultam (érettségi utáni képzés, 1. éve (2 éves képzés)).
Majd 2. évben tanultuk volna a CBuildert, de mivel kevésen voltunk a programozó szakon, így a megszünt és mehettünk át egy másik suliba.

Ott az volt a gond, hogy az osztály, amelyhez csatlakoztunk, ők már az előző évben Java -ztak.
Tehát, már akkor is OOP-ztak. Én meg még mindíg nem tudok teljesen elszakadni a struktúrált programozástól, több idő kellene, hogy gondolkodásban is teljesen átáljak az OOP-ra.

Hó végére kell leadnom a szakdolit.

Az, bizony, idő. Meg áldozat. Vér, könnyek. Másképp nem megy.
Viszont ha ezt nem szánod rá, teljesen felesleges dobni egy fikát a C#-ra. Igaz, ezzel sok ember szemében az übercool arc, a programnyelvek zseniális értője szerepben tűnhetsz fel, de semmit több. Viszont sok ajtót bezársz magad előtt.