[ djura1 @ 21.01.2004. 11:02 ] @
U Java dokumentaciji pise da metod appendChild() (org.w3c.dom.Node)dodaje novi cvor na kraj liste dece za tekuci cvor. Da li se tu misli na kraj liste cvorova u prvom nivou hijerarhije (sto je po meni logicnije) ili na kraj liste kompletne hijerarhije cvorova?
Primer:
Code:

<doc>
  <entry>
    <ime>ime</ime>
  </entry>
</doc>


Kad bih sad hteo da dodam novi <entry> cvor koristeci appendChild() da li bih dobio hijerarhiju kao doc->(entry,entry) ili kao doc->entry->ime->entry?

Drugo pitanje je kako mogu da snimim promene koje uradim u dokumentu nazad u originalni fajl? Na webu sam pronasao klasu XmlWriter koja je izgleda deo nekog Octopus API-ja i koja radi upravo to. Da li postoji neka takva klasa u JSDK?
[ brcha @ 21.01.2004. 11:48 ] @
pa prvo dođeš do željenog node-a, pa onda kažeš append child.
moj savet je da prvo pogledaš neki opsežan primer. Sve jedno da li je u pitanju Java, C++, C#, ili nešto treće, DOM je DOM ma koje farbe bio :) Uostalom, glavna razlika u korišćenju Qt-ovog DOM-a i TinyXML biblioteke je u tome što u QtDOM sve funkcije inaju prefiks „Q”, a u TinyXML prefiks je „Ti” :)
[ jeremycod @ 24.01.2004. 22:11 ] @
Citat:
djura1:

Drugo pitanje je kako mogu da snimim promene koje uradim u dokumentu nazad u originalni fajl? Na webu sam pronasao klasu XmlWriter koja je izgleda deo nekog Octopus API-ja i koja radi upravo to. Da li postoji neka takva klasa u JSDK?


Mozes da koristis XmlWriter ali ako koristis DOM onda postoji mnogo jednostavnije resenje. Evo primera

public void writeAsXML(Document doc)
{
try{
TransformerFactory transFactory = TransformerFactory.newInstance();
Transformer transformer = transFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");

DOMSource source = new DOMSource(doc);

FileOutputStream os = new FileOutputStream(new File("NekiFajl.xml"));
StreamResult result = new StreamResult(os);
transformer.transform(source, result);
} catch (Exception ex)
{
System.out.println("Greska");
}
}

Sada samo treba da pozoves writeAsXML(doc)