Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Kako da izmjenim XML cvor na odredjenoj poziciji u XML?

  • 5 odgovora
  • 3.917 pregleda

Najnovija ↓

Kako da izmjenim XML cvor na odredjenoj poziciji u XML? 11.08.2010. u 17:03 · pre 197 meseci #1
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
Re: Kako da izmjenim XML cvor na odredjenoj poziciji u XML? 11.08.2010. u 18:34 · pre 197 meseci #2
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
Re: Kako da izmjenim XML cvor na odredjenoj poziciji u XML? 11.08.2010. u 20:48 · pre 197 meseci #4
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

Re: Kako da izmjenim XML cvor na odredjenoj poziciji u XML? 12.08.2010. u 10:23 · pre 197 meseci #5
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... :(
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme