» »

java + xml

java + xml

l0g1t3ch ::

Imam neko client server aplikacijo, ki sedaj komunicira tako, da se med strežnikom in klientom prenašajo ukazi ter podatki kot navaden tekst. Stvar sicer deluje vendar se mi sedaj ko je število raznih ukazov/sporočil močno narastlo zdi, da bi bilo pametno to predelat ne neko bolj strukturirano/pregledno obliko sporočil.
Zamisliv sem si da bi komunikacija potekala preko XML sporočil. Client tvori neko xml sporočilo le tega pošlje strežniku, ta ga sparsa
in naredi kar je potrebno ter rezultat spet vrne kot xml sporočilo.
Problem je pa v tem, da kar se jave tiče nimam pojma kako delati z xml-jev, z brskanjem po netu pa postajam samo še bolj zmeden saj ne najdem nobenga dobrga tutoriala, vsa zadeva okol xml-ja pa mi zgleda strašno zmedena. Kolikor sm uspel ugotoviti je za tole kar rabim bolj primeren DOM parser kot pa SAX.
Če ima kdo kak dober primer kako se tvori XML in le tega pošlje preko socketov ter na drugi strani sparsa bi mu bil več kot hvaležn.

Hvala

tilnik ::

Zdravo.
Poglej si Apache XML projekt.
Z njegovo pomočjo boš lahko pretvarjal XML v java objekte in obratno. Le te boš pa lahko brez težav pošiljal preko TCP/UDP protokola.
Lp!

Zgodovina sprememb…

  • spremenil: tilnik ()

kopernik ::

Poglej še json, ki ni tako obilen kot xml, knjižnic pa imaš tudi kar nekaj na voljo. Obenem ga lahko tudi lepo bereš (kot xml), kar prav pride pri debugiranju.

mspiller ::

Pa se en link. Na zelo preprost nacin kako delati z xml preko POJO (plain old java object). Dela pa z native javo (nobenih dodatnih knjiznic za jre 1.6).

Zgodovina sprememb…

  • spremenil: mspiller ()

Fizikalko ::

Uporabi JAXB.

l0g1t3ch ::

Tkole sm pol resu stvar. 2 metodi, ena pretvarja DOM objekt v string druga pa obratno. Stringe pa enostavno pošiljam preko socketov.
Meni se stvar zdi OK, vase mnenje ? Mogoc komu se pride prov.


//xml pretvorimo v string
public static synchronized String domToStr(Document doc) throws Exception
{
String res = null;

DOMSource domSource = new DOMSource(doc); //vir DOM modela
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.transform(domSource, result);

res = writer.toString();

return res;
}


//string, ki predstavlja XML prevori v DOM objekt
public static synchronized Document strToDom(String xml) throws Exception
{
Document doc = null; //xml dokument kot DOM objekt

if( xml != null)
{
DocumentBuilderFactory fact = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = fact.newDocumentBuilder(); // Graditelj dokumentov
doc = builder.parse( new InputSource( new StringReader( xml ) ) );
doc.setXmlStandalone(true);
}
return doc;
}

l0g1t3ch ::

P.S. Kako za vraga tu na slo-techu prilepim kodo. Če uporabim gumb tamle zgoraj mi pri postanje zatezi da imam nepravilne tage. Meni se zdi tole mal lame narjen al je kak fora ?

Quikee ::

Ročno moreš napisat:
[st.koda c]
koda...
[/st.koda]


....
public static void main() {
	List<String> strings = new ArrayList<String>();
}
...


;)

GaPe ::

Dobra knjižnica za delo z xml-ji in xml shemami je http://www.castor.org/. Najprej si narediš xml shemo in s pomočjo castorja generiraš java razrede (modele). Za tutorial glede xml-ja in shem si poglej http://www.w3schools.com/xml/default.as...

Lp
Don't steal! The government hates competition.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Davčne blagajne (strani: 1 2 3 424 25 26 27 )

Oddelek: Programiranje
1344318493 (58496) Macketina
»

Web services - Neveljavni karakterji v XML

Oddelek: Programiranje
313618 (2730) boolsheat
»

[Java]Shranjevanje/Branje nastavitev za povezavo z podatkovno bazo

Oddelek: Programiranje
192395 (2169) KernelPanic
»

parsanje podatkov iz strani

Oddelek: Programiranje
131856 (1651) commissar
»

[java] problem pri pretvarjanju datoteke v string

Oddelek: Programiranje
51055 (945) pujs

Več podobnih tem