Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako da izmjenim XML cvor na odredjenoj poziciji u XML?

[es] :: .NET :: Kako da izmjenim XML cvor na odredjenoj poziciji u XML?

[ Pregleda: 2626 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

CallMeSaMaster

Član broj: 43611
Poruke: 466
*.hermes-softlab.com.



+1 Profil

icon Kako da izmjenim XML cvor na odredjenoj poziciji u XML?11.08.2010. u 16:03 - pre 166 meseci
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
 
Odgovor na temu

bojan21
Bojan Zukic
Beograd

Član broj: 101113
Poruke: 251
92.244.151.*



+6 Profil

icon Re: Kako da izmjenim XML cvor na odredjenoj poziciji u XML?11.08.2010. u 17:34 - pre 166 meseci
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
 
Odgovor na temu

CallMeSaMaster

Član broj: 43611
Poruke: 466
109.175.87.*



+1 Profil

icon Re: Kako da izmjenim XML cvor na odredjenoj poziciji u XML?11.08.2010. u 18:33 - pre 166 meseci
Ok shvatio sam, samo ne kontam sta je ovo BR[1] u xPath-u?

A svakako cu se malo pozabaviti sa ovom tematikom...
 
Odgovor na temu

bojan21
Bojan Zukic
Beograd

Član broj: 101113
Poruke: 251
92.244.151.*



+6 Profil

icon Re: Kako da izmjenim XML cvor na odredjenoj poziciji u XML?11.08.2010. u 19:48 - pre 166 meseci
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

 
Odgovor na temu

CallMeSaMaster

Član broj: 43611
Poruke: 466
*.hermes-softlab.com.



+1 Profil

icon Re: Kako da izmjenim XML cvor na odredjenoj poziciji u XML?12.08.2010. u 09:23 - pre 166 meseci
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... :(
 
Odgovor na temu

CallMeSaMaster

Član broj: 43611
Poruke: 466
*.hermes-softlab.com.



+1 Profil

icon Re: Kako da izmjenim XML cvor na odredjenoj poziciji u XML?12.08.2010. u 09:39 - pre 166 meseci
Ipak sad odjednom radi :)

Hvala
 
Odgovor na temu

[es] :: .NET :: Kako da izmjenim XML cvor na odredjenoj poziciji u XML?

[ Pregleda: 2626 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.