diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a3062be --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.vscode/* diff --git a/lr10/task_1/e1.java b/lr10/task_1/e1.java new file mode 100644 index 0000000..e53da6f --- /dev/null +++ b/lr10/task_1/e1.java @@ -0,0 +1,75 @@ +package lr10.task_1; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import java.io.File; + +public class e1 { + public static void main(String[] args) { + try { + DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); + + // Создание корневого элемента + Document doc = docBuilder.newDocument(); + Element rootElement = doc.createElement("library"); + doc.appendChild(rootElement); + + // Добавление первой книги + Element book1 = doc.createElement("book"); + rootElement.appendChild(book1); + + Element title1 = doc.createElement("title"); + title1.appendChild(doc.createTextNode("Война и мир")); + book1.appendChild(title1); + + Element author1 = doc.createElement("author"); + author1.appendChild(doc.createTextNode("Лев Толстой")); + book1.appendChild(author1); + + Element year1 = doc.createElement("year"); + year1.appendChild(doc.createTextNode("1869")); + book1.appendChild(year1); + + // Добавление второй книги + Element book2 = doc.createElement("book"); + rootElement.appendChild(book2); + + Element title2 = doc.createElement("title"); + title2.appendChild(doc.createTextNode("Мастер и Маргарита")); + book2.appendChild(title2); + + Element author2 = doc.createElement("author"); + author2.appendChild(doc.createTextNode("Михаил Булгаков")); + book2.appendChild(author2); + + Element year2 = doc.createElement("year"); + year2.appendChild(doc.createTextNode("1967")); + book2.appendChild(year2); + + // Запись XML-файла + doc.setXmlStandalone(true); + doc.normalizeDocument(); + + javax.xml.transform.TransformerFactory tf = javax.xml.transform.TransformerFactory.newInstance(); + javax.xml.transform.Transformer transformer = tf.newTransformer(); + transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING, "UTF-8"); + transformer.setOutputProperty(javax.xml.transform.OutputKeys.STANDALONE, "yes"); + transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT, "yes"); + + javax.xml.transform.dom.DOMSource source = new javax.xml.transform.dom.DOMSource(doc); + + javax.xml.transform.stream.StreamResult result = new javax.xml.transform.stream.StreamResult( + new File("example.xml")); + + transformer.transform(source, result); + + System.out.println("XML-файл успешно создан!"); + + } catch (Exception pce) { + pce.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/lr10/task_1/e2.java b/lr10/task_1/e2.java new file mode 100644 index 0000000..fd1ff1b --- /dev/null +++ b/lr10/task_1/e2.java @@ -0,0 +1,48 @@ +package lr10.task_1; + +import java.io.File; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.DocumentBuilder; +import org.w3c.dom.Document; +import org.w3c.dom.NodeList; +import org.w3c.dom.Node; +import org.w3c.dom.Element; + +public class e2 { + public static void main(String[] args) { + try { + File inputFile = new File("example.xml"); + + DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); + Document doc = dBuilder.parse(inputFile); + + doc.getDocumentElement().normalize(); + + System.out.println("Корневой элемент: " + doc.getDocumentElement().getNodeName()); + + NodeList nodeList = doc.getElementsByTagName("book"); + + for (int i = 0; i < nodeList.getLength(); i++) { + Node node = nodeList.item(i); + System.out.println("\nТекущий элемент: " + node.getNodeName()); + + if (node.getNodeType() == Node.ELEMENT_NODE) { + Element element = (Element) node; + + System.out.println("Название книги: " + + element.getElementsByTagName("title").item(0).getTextContent()); + + System.out.println("Автор: " + + element.getElementsByTagName("author").item(0).getTextContent()); + + System.out.println("Год издания: " + + element.getElementsByTagName("year").item(0).getTextContent()); + } + } + + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file