1
package org.herac.tuxguitar.gui.help.doc;
4
import java.io.IOException;
7
import javax.xml.parsers.DocumentBuilder;
8
import javax.xml.parsers.DocumentBuilderFactory;
9
import javax.xml.parsers.ParserConfigurationException;
11
import org.w3c.dom.Document;
12
import org.w3c.dom.NamedNodeMap;
13
import org.w3c.dom.Node;
14
import org.w3c.dom.NodeList;
15
import org.xml.sax.SAXException;
17
public class DocItemReader {
18
private static final String ITEM_TAG = "item";
19
private static final String ATTRIBUTE_NAME = "name";
20
private static final String ATTRIBUTE_URL = "url";
22
public void loadHelpItems(List items,File file){
23
if (file != null && file.exists()){
25
Document doc = getDocument(file);
26
loadHelpItems(items,doc.getFirstChild());
27
} catch (Throwable throwable) {
28
throwable.printStackTrace();
33
private void loadHelpItems(List items,Node node){
34
NodeList listNode = node.getChildNodes();
35
for (int i = 0; i < listNode.getLength(); i++) {
36
Node child = listNode.item(i);
37
String nameNode = child.getNodeName();
38
if (nameNode.equals(ITEM_TAG)) {
39
NamedNodeMap attributes = child.getAttributes();
40
DocItem item = new DocItem(getAttribute(ATTRIBUTE_NAME,attributes),getAttribute(ATTRIBUTE_URL,attributes));
41
loadHelpItems(item.getChildren(),child);
47
private String getAttribute(String attribute,NamedNodeMap map){
48
Node node = map.getNamedItem(attribute);
50
return node.getNodeValue();
55
private Document getDocument(File file) throws ParserConfigurationException, SAXException, IOException {
56
Document document = null;
57
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
58
DocumentBuilder builder = factory.newDocumentBuilder();
59
document = builder.parse(file);