[Java] Xml. Zapis oraz tworzenie struktury.

Odpowiedz Nowy wątek
2006-04-20 11:46
0

Witam

Mam duzy problem z obsluga xml w jave. Dokladnie chodzi mi o stworzenie np takiej struktory.

<?xml version="1.0" encoding="ISO-8859-1"?>

<database>
        <book>
                <przyklad1>test</przyklad1>
                <przyklad2>test </przyklad2>
        </book>
        <book>
                <przyklad1>test</przyklad1>
                <przyklad2> test </przyklad2>
        </book>

</database>

Oraz zapisanie jej w pliku. Potrafie tylko odczytac caly plik i wybrac element. niestety nie wiem jak go zmodyfikowac oraz jak stworzyc cala strukture w bazie.

Dzieki z gory za jakis przyklad na ktorym bede mogl sie oprzec. Niestety tutoriale w necie sa tak napisane, ze glowa boli. Korzystam z xpath.

Pozostało 580 znaków

2006-04-24 20:28
mario_kaskowy
0

niby jak korzystasz z xpath . xpath sluzy do czego inneog , napisz jaka metoda chcesz tworzyc ten dokument (sax,dom,jdom). to ci napisze

Pozostało 580 znaków

2006-04-25 01:07
0

Moze troszke zle to ujolem. Do odczytu danych z xml urzywalem dom + xpath. Wchodzilem do odpowiedniej galezi drzewa przy pomocy nodelist, pozniej node do ustalenia pozycji obiektu, ktory chcialem odczytac. Nastepnie:

String przyklad = (String) xpath.evaluate("./przyklad", n, XPathConstants.STRING);

I to wystarczylo. Niestety jak juz wczesniej wspominalem nie zdolalem rozwiklac zagadki tworzenia calego drzewa od poczatku wraz z zapisem, modyfikowaniem danych w xml.

Chcialbym Stworzyc ten dokument w dom. Probowalem wykorzystac tutoriale, ktore znalazlem w necie ale sa tak strasznie napisane, ze nic z tego nie wyszlo.

Pozostało 580 znaków

2006-04-26 21:48
0

wkleje ci kod który kiedyś sam napisałem może będzie pomocny, służył do odczytania z pliku ale analogicznie używając SAXWritera mozna pisac
Plik XML miał z grubasz strukture:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>

<newsy> <news> <autor>Java.sun.com</autor> <data>11.11.2005</data> <wiadomosc> This is a unique area on java.sun.com where Sun engineers </wiadomosc> </news> ... </newsy>

A parser tak:
import java.io.File;
import java.util.Iterator;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class parserXML {

    String NewsNode = "News";
    String AutorNode = "Autor";
    String DataNode = "Data";
    String WiadomoscNode = "Wiadomosc";

    String Autor;
    String Data;
    String Wiadomosc;
    String Str="";

    public String parse() {
        File file = new File("c:\\news.xml");
        SAXReader reader = new SAXReader();
        Document document;
        try {
            document = reader.read(file);

        Element rootElement = document.getRootElement();

        for ( Iterator rootIterator = rootElement.elementIterator(); rootIterator.hasNext(); ) {
            Element News = (Element) rootIterator.next();

                for( Iterator newsIterator = News.elementIterator(); newsIterator.hasNext(); ){
                    Element NewsNodes = (Element) newsIterator.next();

                    if(AutorNode.equals(NewsNodes.getName())){
                        Autor = NewsNodes.getText();
                        Str=Str+"<div class=\"NewsHeader\">"+"Autor: "+Autor;

                    }
                    if(DataNode.equals(NewsNodes.getName())){
                        Data = NewsNodes.getText();
                        Str=Str+"Data: "+Data+"</div>";
                    }
                    if(WiadomoscNode.equals(NewsNodes.getName())){
                        Wiadomosc = NewsNodes.getText();
                        Str=Str+"<div class=\"NewsContent\">"+Wiadomosc+"</div>";
                    }

                }

    }
    } catch (DocumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
    }
    return Str;
}

}

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych 0, gości 1, botów: 0