Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

java / Lab3 / src / Main

.java
Скачиваний:
88
Добавлен:
17.04.2018
Размер:
3.47 Кб
Скачать
import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class Main {
    public static void main(String[] args) throws Exception {

        File xmlFile = new File("ska.xml");

        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
        Document doc = documentBuilder.parse(xmlFile);

        Element recipesElement = doc.getDocumentElement();
        NodeList recipeList = recipesElement.getElementsByTagName("recipe");
        for (int i=0; i<recipeList.getLength();i++) {
            Node recipeNode = recipeList.item(i);
            Element recipeElement = (Element) recipeNode;
            System.out.println("Блюдо №"+(i+1)+": "+ recipeElement.getAttribute("name"));

            System.out.println("Ингредиенты:");
                NodeList ingsList = recipeElement.getElementsByTagName("ingredient");
                for (int j = 0; j < ingsList.getLength(); j++) {
                    Node ingNode = ingsList.item(j);
                    if (ingNode.getNodeType() == Node.ELEMENT_NODE) {
                        Element ingElement = (Element) ingNode;
                        String unit = ingElement.getAttribute("unit");
                        String amount = ingElement.getAttribute("amount");
                        System.out.println(ingElement.getTextContent()+": " + amount + " " + unit);
                    }
                }

            System.out.println("");
            System.out.println("Посуда и инструменты:");
            NodeList dishList = recipeElement.getElementsByTagName("dishes");
            for (int j = 0; j < dishList.getLength(); j++) {
                Node dishNode = dishList.item(j);
                if (dishNode.getNodeType() == Node.ELEMENT_NODE) {
                Element dishElement = (Element) dishNode;
                System.out.println(dishElement.getTextContent());
            }
        }

            System.out.println("");
            System.out.println("Шаги приготовления:");
            NodeList instructionList = recipesElement.getElementsByTagName("instructions");
            if (instructionList.getLength() > 0) {
                Element instructionElement = (Element) instructionList.item(0);

                NodeList stepList = instructionElement.getChildNodes();

                for (int j = 0; j < stepList.getLength(); j++) {
                    Node stepNode = stepList.item(j);
                    if (stepNode.getNodeType() == Node.ELEMENT_NODE) {
                        Element stepElement = (Element) stepNode;
                        System.out.println(((j-1)/2+1)+". "+stepElement.getTextContent());
                    }
                }
            }
            System.out.println("\n\n");
        }
/*NodeList list = document.getElementsByTagName("recept");

for (int i=0; i<list.getLength(); i++)
{
Node node = list.item(i);
if(node.getNodeType() == Node.ELEMENT_NODE) {

Element ing1 = (Element) node;
String unit = ing1.getAttribute("unit");
System.out.println(ing1.getElementsByTagName("ingredient").item(i).getTextContent()+ unit);
}
}*/
    }
}