2013-10-08 2 views
1

Текущий код: https://github.com/coldblade2000/QuizMaker/tree/Development XML я сделал: http://pastebin.com/FBHVsnPAКак использовать XML для хранения данных для моей викторины?

Я делаю Maker приложение Quiz для Android и не был в состоянии обернуть вокруг головы, используя XML для хранения данных. Я сделал небольшой XML-файл, который я использую для его проверки. У этого есть место для 1 вопроса и четырех возможных ответов.

У меня возникли проблемы с пониманием того, как добавлять значения и строки в XML, читать его и т. Д. Я пробовал большинство руководств по XML и андроидам, но большинство из них не говорит об использовании переменных в нем или о добавлении собственных атрибуты к элементам. XML для меня действительно новичок, я знаю только столько, сколько базовый HTML получит меня

ответ

1

Основным API Java для XML, который можно использовать для чтения и записи XML, является DOMStaX. Однако DOM4J может быть лучше, поскольку он имеет простой и простой API.

Это простой метод для создания документа XML

public void createXML() throws IOException { 

    Document document = DocumentHelper.createDocument(); 
    Element rootElement = document.addElement("Students"); 
    Element studentElement = rootElement.addElement("student").addAttribute("country", "USA"); 
    studentElement.addElement("id").addText("1"); 
    studentElement.addElement("name").addText("Peter"); 
    XMLWriter writer = new XMLWriter(new FileWriter("Students.xml")); 
    //Note that You can format this XML document 
    /* 
    * FileWriter output = new FileWriter(new File("Students.xml")); 
    OutputFormat format = OutputFormat.createPrettyPrint(); 
    XMLWriter writer = new XMLWriter(output,format);<- will fomat the output 
    */ 

    //You can print this to the console and see what it looks like 
    String xmlElement = document.asXML(); 
    System.out.println(xmlElement); 
    writer.write(document); 
    writer.close(); 

} 

И читать student.xml

public void readXML() throws SAXException, IOException, 
     ParserConfigurationException, DocumentException { 
    /*Integration with DOM 
    DOMReader reader = new DOMReader(); 
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
    DocumentBuilder builder = factory.newDocumentBuilder(); 
    Document document = reader.read(builder.parse(new File("Students.xml"))); 
    */ 
    SAXReader readerSAX = new SAXReader(); 
    Document document2 = readerSAX.read(new File("Students.xml")); 
    Element root = document2.getRootElement(); 
    Student student = null; 
    List<Student> studentsList = new ArrayList<Student>(); 
    if (root.getName().equalsIgnoreCase("students")) { 
     for (@SuppressWarnings("unchecked") 
     Iterator<Student> i = root.elementIterator(); i.hasNext();) { 
      Element element = (Element) i.next(); 
      if ("student".equalsIgnoreCase(element.getName())) { 
       student = new Student(); 
       for (int j = 0, size = element.nodeCount(); j < size; j++) { 
        Node node = (Node) element.node(j); 
        if (node instanceof Element) { 
         if ("id".equalsIgnoreCase(node.getName())) { 
          student.setId(Integer.parseInt(node.getText())); 
         } else if ("name".equalsIgnoreCase(node.getName())) { 
          student.setName(node.getText()); 
         } 
        } 
       } 
       studentsList.add(student); 
      } 
     } 
    } 
    for(Student stud : studentsList){ 
     System.out.println(stud);   
    } 
} 
+0

Спасибо! Я постараюсь понять это завтра, когда мой мозг не будет кучей усталости. – coldblade2000

+0

@ coldblade2000 http://www.ibm.com/developerworks/library/x-dom4j/index.html проверить, что учебник действительно замечательный – LeandreM

Смежные вопросы