so, hab auf die schnelle erstmal nur sourcecode zur hand da ich auf nem Sprung bin, vielleicht hilft das:
Code:
package xml;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.xml.stream.XMLEventFactory;
import javax.xml.stream.XMLEventWriter;
import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.XMLEvent;
import java.util.*;
import structures.Member;
public class IOXml {
/* non-static declarations*/
static private IOXml theInstance = null;
public structures.Club getClub(){
return null;
}
/**
* Put a club into an XML File with clubname, clubaddress, and director.
*
* @param club The club to put
* @throws <code>IOException</code> Will thrown if something went wrong,
* like wrong letters
* @throws <code>XMLStreamException</code> Will thrown if something went
* wrong while streaming
*/
public void putClub(structures.Club club) throws XMLStreamException,
IOException {
XMLOutputFactory factory = XMLOutputFactory.newInstance();
XMLEventWriter writer =
factory.createXMLEventWriter(new FileOutputStream("Club.xml"));
XMLEventFactory eventFactory = XMLEventFactory.newInstance();
XMLEvent header = eventFactory.createStartDocument();
XMLEvent startRoot = eventFactory.createStartElement("", "","club");
XMLEvent endRoot = eventFactory.createEndDocument();
XMLEvent startClubName =
eventFactory.createStartElement("", "", "clubname");
XMLEvent endClubName =
eventFactory.createEndElement("", "", "clubName");
XMLEvent startAddress =
eventFactory.createStartElement("", "", "address");
XMLEvent endAddress = eventFactory.createEndElement("", "", "address");
XMLEvent startStreet =
eventFactory.createStartElement("", "", "street");
XMLEvent endStreet = eventFactory.createEndElement("", "", "street");
XMLEvent startHouseNumber =
eventFactory.createStartElement("", "", "houseNumber");
XMLEvent endHouseNumber =
eventFactory.createEndElement("", "", "houseNumber");
XMLEvent startPostalCode =
eventFactory.createStartElement("", "", "postalCode");
XMLEvent endPostalCode =
eventFactory.createEndElement("", "", "postalCode");
XMLEvent startTown = eventFactory.createStartElement("", "", "town");
XMLEvent endTown = eventFactory.createEndElement("", "", "town");
XMLEvent startEmailAddress =
eventFactory.createStartElement("", "", "emailAddress");
XMLEvent endEmailAddress =
eventFactory.createEndElement("", "", "emailAddress");
XMLEvent startDirectorsName =
eventFactory.createStartElement("", "", "directorsName");
XMLEvent endDirectorsName =
eventFactory.createEndElement("", "", "directorsName");
XMLEvent name =
eventFactory.createCharacters(club.getName());
XMLEvent street = eventFactory.createCharacters(
club.getAddress().getStreet());
XMLEvent houseNumber = eventFactory.createCharacters(
club.getAddress().getHouseNumber());
XMLEvent postalCode = eventFactory.createCharacters(
club.getAddress().getPostalCode());
XMLEvent town = eventFactory.createCharacters(
club.getAddress().getTown());
XMLEvent emailAddress = eventFactory.createCharacters(
club.getAddress().getEmailAddress());
XMLEvent clubDirector = eventFactory.createCharacters(
club.getDirectorsName());
writer.add(header);
writer.add(startRoot);
writer.add(startClubName);
writer.add(name);
writer.add(endClubName);
writer.add(startAddress);
writer.add(startStreet);
writer.add(street);
writer.add(endStreet);
writer.add(startHouseNumber);
writer.add(houseNumber);
writer.add(endHouseNumber);
writer.add(startPostalCode);
writer.add(postalCode);
writer.add(endPostalCode);
writer.add(startTown);
writer.add(town);
writer.add(endTown);
writer.add(startEmailAddress);
writer.add(emailAddress);
writer.add(endEmailAddress);
writer.add(endAddress);
writer.add(startDirectorsName);
writer.add(clubDirector);
writer.add(endDirectorsName);
writer.add(endRoot);
writer.close();
}
/**
* Put an actual memberlist into an XML file and set to every member the
* new progress in the progress bar and show the actual name in the
* progress bar. After putting all members, the progress bar will set to
* 100, that the progress bar will destroyed.
*
* @param memberList The memberlist to put
* @param progressIndicator The progress bar
* @throws <code>IOException</code> Will thrown if something went wrong,
* like wrong letters
* @throws <code>XMLStreamException</code> Will thrown if something went
* wrong while streaming
*/
public void putMemberList(structures.MemberList memberList,
gui.ProgressIndicator progressIndicator) throws IOException,
XMLStreamException {
XMLOutputFactory factory = XMLOutputFactory.newInstance();
XMLEventWriter writer = factory.createXMLEventWriter(
new FileOutputStream("MemberList.xml") );
XMLEventFactory eventFactory = XMLEventFactory.newInstance();
int memberCount = memberList.getNumberOfMembers();;
String memberCount2 = String.valueOf(memberList.getNumberOfMembers());
Member actualMember;
XMLEvent header = eventFactory.createStartDocument();
XMLEvent startRoot = eventFactory.createStartElement(
"", "", "MemberList");
XMLEvent endRoot = eventFactory.createEndDocument();
XMLEvent memberCount1 = eventFactory.createAttribute(
"countOfMember", memberCount2);
XMLEvent startMember = eventFactory.createStartElement(
"", "", "Member");
XMLEvent endMember = eventFactory.createEndElement(
"", "", "member");
XMLEvent startName = eventFactory.createStartElement("", "", "name");
XMLEvent endName = eventFactory.createEndElement("", "", "member");
XMLEvent startGivenName = eventFactory.createStartElement(
"", "", "givenName");
XMLEvent endGivenName = eventFactory.createEndElement(
"", "", "givenName");
XMLEvent startAddress = eventFactory.createStartElement(
"", "", "address");
XMLEvent endAddress = eventFactory.createEndElement("", "", "address");
XMLEvent startStreet = eventFactory.createStartElement(
"", "", "street");
XMLEvent endStreet = eventFactory.createEndElement("", "", "street");
XMLEvent startHouseNumber = eventFactory.createStartElement(
"", "", "houseNumber");
XMLEvent endHouseNumber = eventFactory.createEndElement(
"", "", "houseNumber");
XMLEvent startPostalCode = eventFactory.createStartElement(
"", "", "postalCode");
XMLEvent endPostalCode = eventFactory.createEndElement(
"", "", "postalCode");
XMLEvent startTown = eventFactory.createStartElement("", "", "town");
XMLEvent endTown = eventFactory.createEndElement("", "", "town");
XMLEvent startEmailAddress = eventFactory.createStartElement(
"", "", "emailAddress");
XMLEvent endEmailAddress = eventFactory.createEndElement(
"", "", "emailAddress");
XMLEvent startBirthdayYear = eventFactory.createStartElement(
"", "", "birthDayYear");
XMLEvent endBirthdayYear = eventFactory.createEndElement(
"", "", "birthDayYear");
XMLEvent startBirthdayMonth = eventFactory.createStartElement(
"", "", "birthDayMonth");
XMLEvent endBirthdayMonth = eventFactory.createEndElement(
"", "", "birthDayMonth");
XMLEvent startBirthdayDay = eventFactory.createStartElement(
"", "", "birthDayDay");
XMLEvent endBirthdayDay = eventFactory.createEndElement(
"", "", "birthDayDay");
XMLEvent startEntryDateYear = eventFactory.createStartElement(
"", "", "entryDateYear");
XMLEvent endEntryDateYear = eventFactory.createEndElement(
"", "", "entryDateYear");
XMLEvent startEntryDateMonth = eventFactory.createStartElement(
"", "", "entryDateMonth");
XMLEvent endEntryDateMonth = eventFactory.createEndElement(
"", "", "entryDateMonth");
XMLEvent startEntryDateDay = eventFactory.createStartElement(
"", "", "entryDateDay");
XMLEvent endEntryDateDay = eventFactory.createEndElement(
"", "", "entryDateDay");
XMLEvent startGroup = eventFactory.createStartElement(
"", "", "group");
XMLEvent endGroup = eventFactory.createEndElement(
"", "", "group");
XMLEvent startStatus = eventFactory.createStartElement(
"", "", "status");
XMLEvent endStatus = eventFactory.createEndElement("", "", "status");
progressIndicator.show();
writer.add(header);
writer.add(startRoot);
writer.add(memberCount1);
for (int i = 0; i < memberCount; i++) {
actualMember = memberList.getMember(i);
progressIndicator.setPercentage((i*100/memberCount));
progressIndicator.setStepText(actualMember.getName());
XMLEvent name = eventFactory.createCharacters(actualMember.getName());
XMLEvent givenName = eventFactory.createCharacters(
actualMember.getGivenName());
XMLEvent street = eventFactory.createCharacters(
actualMember.getAddress().getStreet());
XMLEvent houseNumber = eventFactory.createCharacters(
actualMember.getAddress().getHouseNumber());
XMLEvent postalCode = eventFactory.createCharacters(
actualMember.getAddress().getPostalCode());
XMLEvent town = eventFactory.createCharacters(
actualMember.getAddress().getTown());
XMLEvent emailAddress = eventFactory.createCharacters(
actualMember.getAddress().getEmailAddress());
XMLEvent birthDayYear = eventFactory.createCharacters(
String.valueOf(actualMember.getBirthday().get(
Calendar.YEAR)));
XMLEvent birthDayMonth = eventFactory.createCharacters(
String.valueOf(actualMember.getBirthday().get(
Calendar.MONTH)));
XMLEvent birthDayDay = eventFactory.createCharacters(
String.valueOf(actualMember.getBirthday().get(
Calendar.DATE)));
XMLEvent entryDateYear = eventFactory.createCharacters(
String.valueOf(actualMember.getEntryDay().get(
Calendar.YEAR)));
XMLEvent entryDateMonth = eventFactory.createCharacters(
String.valueOf(actualMember.getEntryDay().get(
Calendar.MONTH)));
XMLEvent entryDateDay = eventFactory.createCharacters(
String.valueOf(actualMember.getEntryDay().get(
Calendar.DATE)));
XMLEvent group = eventFactory.createCharacters(
actualMember.getGroup().toString());
XMLEvent status = eventFactory.createCharacters(
actualMember.getStatus().toString());
writer.add(startMember);
writer.add(startName);
writer.add(name);
writer.add(endName);
writer.add(startGivenName);
writer.add(givenName);
writer.add(endGivenName);
writer.add(startAddress);
writer.add(startStreet);
writer.add(street);
writer.add(endStreet);
writer.add(startHouseNumber);
writer.add(houseNumber);
writer.add(endHouseNumber);
writer.add(startPostalCode);
writer.add(postalCode);
writer.add(endPostalCode);
writer.add(startTown);
writer.add(town);
writer.add(endTown);
writer.add(startEmailAddress);
writer.add(emailAddress);
writer.add(endEmailAddress);
writer.add(endAddress);
writer.add(startBirthdayYear);
writer.add(birthDayYear);
writer.add(endBirthdayYear);
writer.add(startBirthdayMonth);
writer.add(birthDayMonth);
writer.add(endBirthdayMonth);
writer.add(startBirthdayDay);
writer.add(birthDayDay);
writer.add(endBirthdayDay);
writer.add(startEntryDateYear);
writer.add(entryDateYear);
writer.add(endEntryDateYear);
writer.add(startEntryDateMonth);
writer.add(entryDateMonth);
writer.add(endEntryDateMonth);
writer.add(startEntryDateDay);
writer.add(entryDateDay);
writer.add(endEntryDateDay);
writer.add(startGroup);
writer.add(group);
writer.add(endGroup);
writer.add(startStatus);
writer.add(status);
writer.add(endStatus);
writer.add(endMember);
}
writer.add(endRoot);
writer.close();
progressIndicator.setPercentage(100);
}
public structures.MemberList getMemberList(gui.ProgressIndicator progressIndicator) {
return null;
}
static public xml.IOXml getInstance() {
if (theInstance == null) {
theInstance = new IOXml();
}
return theInstance;
}
protected IOXml() { }
}
hoffe das hilft. zu 2. 3. mache ich mir unterwegs gedanken... Aber schonmal dickers merci