Hello mindenkinek!
Ahogy láttam még nem volt ilyen topic, itt az ideje, hogy legyen. ^_^ Már egy ideje próbálkozom a C# nyelvel és eddig teccik meg minden, de most elakadtam. Egy XML dokumentumot szeretnék kezelni egy progival. Valamilyen eventre, specko egy listbox egyik elemére kattintva, szeretnék egy GridView-t feltölteni adatokkal. Megy is, csak van egy kis bibi. A nav.Value egy olyan értéket ad vissza, ami az össze hiv tartalmát összeolvasztotta. Hogyan lehet azt külön-külön kezelni?
int i,j;
string filename = "adatok.xml";
XPathDocument doc = new XPathDocument(filename);
XPathNavigator nav = doc.CreateNavigator();
XPathExpression expr = nav.Compile("//hiv[@ref='" + lstbox.Text + "']");
XPathNodeIterator iterator = nav.Select(expr);
i = iterator.Count;
for (j = 0; j < i; j++)
{
grdview.Rows.Add(lstbox.Text,nav.Value);
}
Az XML doksi felépítése:
< ?xml version="1.0" encoding="utf-8" ?>
< doc >
< kulcsszavak >
< szo kulcs="xy" / >
< szo kulcs="zt" / >
< /kulcsszavak >
< hivatkozasok >
< hiv ref="xy" >3 kol vmi< /hiv >
< hiv ref="xy" >megint más< /hiv >
< /hivatkozasok >
< /doc >
- 2945 megtekintés
Hozzászólások
XPathDocument doc = new XPathDocument("adatok.xml");
XPathNavigator nav = doc.CreateNavigator();
XPathExpression expr = nav.Compile("//hiv[@ref='xy']");
XPathNodeIterator iterator = nav.Select(expr);
while (iterator.MoveNext())
{
Console.WriteLine(iterator.Current.ToString());
}
---
így (MoveNext & iterator.Current használatával)
3 kol vmimegint más
3 kol vmimegint más
helyett
3 kol vmi
megint más
a kimenet
- A hozzászóláshoz be kell jelentkezni
nagy királyság... köszi! működik
- A hozzászóláshoz be kell jelentkezni
Nem tudnál nekem egy linket küldeni, ahol le van írva, hogy hogyan tudok már létező XML dokumentumba adatokat nodeokat stb-ket létrehozni, beszúri, szóval szimplán a filet írni? Próbálkoztam, de nem találtam használhatót. Vagy örülnék, ha egy egyszerű példát, amin elindulhatok, leírnál ide.
- A hozzászóláshoz be kell jelentkezni
Próbálkozom - próbálkozom, kisebb nagyobb sikerrel, de nem akar összejönni. Az első postomban írt szerkezethez szeretnék hozzáadni egy részt. Így próbálkoztam, mégsem tönrtént semmi változás.
string fn = "adatok.xml";
XmlDocument doc = new XmlDocument();
doc.Load(fn);
XmlElement newElem = doc.CreateElement("szog");
XmlAttribute kulcs = doc.CreateAttribute("kulcs");
kulcs.Value = "tesztelgetek";
newElem.Attributes.Append(kulcs);
doc.Save(fn);
- A hozzászóláshoz be kell jelentkezni
Hi all!
Még mindig az XML-be való írással próbálkozom.
XmlDocument doc = new XmlDocument();
doc.Load("adatok.xml");
XmlElement elm = doc.CreateElement("szo");
XmlText txt = doc.CreateTextNode("érték");
doc.DocumentElement.AppendChild(elm);
doc.DocumentElement.LastChild.AppendChild(txt);
doc.Save("adatok.xml");
Ezzel a root részhez ad hozzá egy érték kinézető nodeot. Hogyan tudom ezt egy másik node alá besorolni?
- A hozzászóláshoz be kell jelentkezni
remélem nem értem félre, ha olyasmit szeretnél, hogy insert után kb így nézzen ki a dolog:
<doc>
...
...
<szó érték="salala" stuff="taralala" />
</doc>
akkor a doc.Load és .Save közé pl ezt lehetne spagettikódolni:
XmlElement rootElement = doc.DocumentElement;
XmlNode xmlNode = doc.CreateNode(XmlNodeType.Element, "szó", "");
XmlNode xmlAttribErt = doc.CreateNode(XmlNodeType.Attribute, "érték", "");
XmlNode xmlAttribStuff = doc.CreateNode(XmlNodeType.Attribute, "stuff", "");
xmlAttribErt.Value = "salala";
xmlAttribStuff.Value = "taralala";
xmlNode.Attributes.SetNamedItem(xmlAttribErt);
xmlNode.Attributes.SetNamedItem(xmlAttribStuff);
rootElement.AppendChild(xmlNode);
- A hozzászóláshoz be kell jelentkezni
Közben nekem is sikerült megoldani, kicsit más módszerrel. Majd beküldöm, csak most suliban vagyok. ^_^
- A hozzászóláshoz be kell jelentkezni
Kicsit talán közérdekűbb a dolog.
Szerencsém volt megismerkedni egy SharpDevelop (#Develop) nevű (sajnos csak) Windows-os IDE-vel, ami képes a projektet Mono1, Mono1.1 és Mono2 alá portolni. A Visual Studio 2005-ben készített projektemet 1az1-ben meg tudtam nyitni és Monora optimalizálni. Így linux alatt is futtatható a program. ^_^
http://www.icsharpcode.net/OpenSource/SD/Default.aspx
Dani
- A hozzászóláshoz be kell jelentkezni
Csak megemlitem, hogy ingyen letoltheto a Visual C# Express is (2006 nov.-ig).
- A hozzászóláshoz be kell jelentkezni
Jaja, csak azzal nem fejlesztesz Monora, az tuti...
Lenne itt egy kérdés. Még a régi Pascalos időszakomból rémlik valami olyasmi, hogy tudtam strukturált fileokban adatot tárolni, de semmi közelebbire nem. C#-ban is jó volna ezt megtanulni, de nem találtam használható doksit a neten (tuti, h nem vok elég kitartó). Szerencsére elég egyszerű fileba írni:
TextWriter txw = new StreamWriter(@"c:\test.txt");
txw.WriteLine("Amit csak akarok");
txw.Close();
Majd megnyitni sem volt egy nagy ördöngősség...
Szóval tudtok vmit javasolni, hol tok utánanézni egy kicsit mélyebben a filekezelésnek meg ilyesmi?
- A hozzászóláshoz be kell jelentkezni
System.IO névtér. MSDN-t nézegess, abban minden benne van. Rengeteg példával, leírással.
- A hozzászóláshoz be kell jelentkezni
Hmm.. láma kérdés lesz, lehet:
Van olyan IDE linuxra ami ad kódkiegészítést C#-ra? Nagyon jó lenne, mert baromira hiányzik. Nekem a monodevelop nem nagyon akart adni. Nem vagyok mindig képben az elérhető függvényekkel, sőt van amikor a feldobott lista mondja meg, éppen melyik függvényt használjam. Olyasmi lenne jó mint ami a C# 2005-ben van.
Ja amúgy ingyenes marad a Visual c#2005 express, persze korlátos marad.
- A hozzászóláshoz be kell jelentkezni
monodevelop-ban kulon be kell allitani. Most nem tudom neked megmondani hogy hol, en is google-ben kerestem ra.
- A hozzászóláshoz be kell jelentkezni
Ha esetleg megtalálod a címet dobje egy mailt lécci a hrgy kukkac vipmail pontt hu-ra, vagy linkeld ide be, pls. Sajna pocsék a netem újabban, meg dolgom is van... Thx
- A hozzászóláshoz be kell jelentkezni
Uff... köszi, meglett. Hááát elég tré, de a célnak megfelel. Béta ahogy illik.
- A hozzászóláshoz be kell jelentkezni