Napiso sam več program ali ovakvo programiranje nije baš najbolje. Radi čak i pravilno. Hteo bih to napraviti malo elegantnije, zato što ako bi mi trebalo kasnije nešto...I ne mogu da vjerujem da je to jedini način da se čita xml. Ako je, onda java i xml baš i nista primerna nizašta nego prenos s jedne platforme na drugu.
// reading XML into data structure
public ArrayList read(String path) throws Exception
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder parser = factory.newDocumentBuilder();
Document document = parser.parse( path );
Element books = document.getDocumentElement();
NodeList listBooks = books.getElementsByTagName("book");
ArrayList links = new ArrayList();
ArrayList linksArray = new ArrayList();
ArrayList lrstruct = new ArrayList();
String link = "";
for (int i=0; i<listBooks.getLength(); i++)
{
NodeList child = listBooks.item(i).getChildNodes();
linksArray = new ArrayList();
for (int j=0; j<child.getLength(); j++)
{
links = new ArrayList();
if (child.item(j).getNodeName().equals("link") && child.item(j).hasChildNodes()) {
Node textlink = child.item(j).getFirstChild();
link = (String)textlink.toString();
}
if (child.item(j).hasChildNodes() && child.item(j).getNodeName().equals("delimiters")) {
String left="";
String right = "";
boolean leftrule = false;
NodeList firstchild = child.item(j).getChildNodes();
boolean zezapisano = false;
for (int k=0; k<firstchild.getLength(); k++)
{
boolean flag = false;
if (firstchild.item(k).hasChildNodes()) {
Node nl = firstchild.item(k).getFirstChild();
if (zezapisano == true && nl.getNodeValue() != null && nl.getNodeValue() != "") {
right = nl.getNodeValue();
}
if (zezapisano == false && nl.getNodeValue() != null && nl.getNodeValue() != "") {
left = nl.getNodeValue();
zezapisano = true;
}
}
}
LR lr = new LR();
lr.L = left;
lr.R = right;
links.add(lr);
}
if (!links.isEmpty()) {
linksArray.add(links);
}
}
LRstruct LRs = new LRstruct();
LRs.link = link;
LRs.rules = linksArray;
lrstruct.add(LRs);
}
return lrstruct;
}
Bez Muje nema struje