[ CallMeSaMaster @ 11.08.2010. 16:03 ] @
Moze li mi neko reci kako cu update neki podatak u xml ako znam na kojoj se poziciji nalazi taj podatak? Npr. Imam strukturu xml-a:

Code:

<PRIJAVA>
    <DJELATNOST>
        <BR>15141</BR>
        <NAZIV>Djelatnost1</NAZIV>
    </DJELATNOST>
    <DJELATNOST>
        <BR>84946</BR>
        <NAZIV>Djelatnost2</NAZIV>
    </DJELATNOST>
    <DJELATNOST>
        <BR>7/6465</BR>  <!--pozicija 3-->
        <NAZIV>Djelatnost3</NAZIV>
    </DJELATNOST>
    <DJELATNOST>
        <BR>456465</BR>
        <NAZIV>Djelatnost4<NAZIV>
    </DJELATNOST>
</PRIJAVA>


Sada recimo trebam da updatetujem elemnt "BR" na poziciji 3. Znaci treca Djelatnost po redoslijedu, vrijednost "BR-a"?
Ovo je sve sto imam u xml file.

Moze li mi neko dati primjer c# coda kako da to uradim? Jednostavno ne znam kako da nadjem tu poziciju...

Hvala
[ bojan21 @ 11.08.2010. 17:34 ] @
Na primer, ovako:

Code (csharp):

using System.Xml;
...
...
//lokacija datoteke na disku
string fileName = "C:\\test.xml";
//xPath adresa trazenog elementa
string xPathAddress = "/PRIJAVA/DJELATNOST[3]/BR[1]";
//nova vrednost trazenog elementa
string newValue = "Nova vrednost elementa";

//kreiramo instancu klase XmlDocument
XmlDocument xmlFile = new XmlDocument();
//ucitavamo XML datoteku sa diska
xmlFile.Load(fileName);

//pronalazimo trazeni element pomocu njegove xPath adrese
XmlNode myNode = xmlFile.SelectSingleNode(xPathAddress);
//menjamo njegovu vrednost
myNode.InnerText = newValue;

//cuvamo XML datoteku
xmlFile.Save(fileName);
 


Procitaj neki kratak tutorijal o XPath-u, zna dosta da olaksa posao.

Pozdrav
[ CallMeSaMaster @ 11.08.2010. 18:33 ] @
Ok shvatio sam, samo ne kontam sta je ovo BR[1] u xPath-u?

A svakako cu se malo pozabaviti sa ovom tematikom...
[ bojan21 @ 11.08.2010. 19:48 ] @
To "BR[1]" znaci da trazis samo prvi (indeks u zagradi) "BR" element koji pripada trecem po redu elementu "DJELATNOSTI" . Kad bi stajalo samo "BR" bez indeksa u zagradi, to bi znacilo da ti trebaju svi "BR" elementi koji pripadaju elementu "DJELATNOSTI" (mada u ovom primeru ta promena ne bi imala nikakvog uticaja, jer postoji samo jedan element "BR" u okviru elementa "DJELATNOSTI", pa bi bio izabran bas on).

Pogledaj ovo: http://www.w3schools.com/xpath/xpath_syntax.asp

Nadam se da je jasnije.
Pozdrav

[ CallMeSaMaster @ 12.08.2010. 09:23 ] @
Citat:

Na primer, ovako:

Code (csharp):

using System.Xml;
...
...
//lokacija datoteke na disku
string fileName = "C:\\test.xml";
//xPath adresa trazenog elementa
string xPathAddress = "/PRIJAVA/DJELATNOST[3]/BR[1]";
//nova vrednost trazenog elementa
string newValue = "Nova vrednost elementa";

//kreiramo instancu klase XmlDocument
XmlDocument xmlFile = new XmlDocument();
//ucitavamo XML datoteku sa diska
xmlFile.Load(fileName);

//pronalazimo trazeni element pomocu njegove xPath adrese
XmlNode myNode = xmlFile.SelectSingleNode(xPathAddress);
//menjamo njegovu vrednost
myNode.InnerText = newValue;

//cuvamo XML datoteku
xmlFile.Save(fileName);



Procitaj neki kratak tutorijal o XPath-u, zna dosta da olaksa posao.

Pozdrav


Ovo ne radi, evo sad sam probao. Kada izbacim ove uglaste zagrade i trazim bilo koji element, dobijem nesto, a kada stavim poziciju node mi je uvijek null... :(
[ CallMeSaMaster @ 12.08.2010. 09:39 ] @
Ipak sad odjednom radi :)

Hvala