Java&Xmlチュートリアル (4) DOMを使用してXMLファイルを生成する

黄舟
リリース: 2017-02-22 14:36:06
オリジナル
1856 人が閲覧しました

前のチュートリアルでは、DOM 解析メソッドを使用して XML ファイルのコンテンツを読み取り、変更する方法を学習しました。今日は、DOM 解析メカニズムを使用して XML ファイルを生成する方法を学習します。

XML ファイルを生成するための特定の要件は次のとおりです:
1. ルート ノード要素は「Employees」、名前空間は「//m.sbmmt.com/」、ルート ノードには次のものが含まれます。一連の Employee 要素。
2. 従業員情報は Employee ノードで表され、生成された XML ファイルには 2 つの従業員情報が含まれます。
3. 各従業員には「id」属性があります。
4. Employee 要素には、「名前」、「年齢」、「役割」、「性別」の 4 つのサブ要素があります。
以下はプログラム コードです:

package com.journaldev.xml; import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; public class XMLWriterDOM { public static void main(String[] args) { DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder; try { dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.newDocument(); //add elements to Document Element rootElement = doc.createElementNS("http://www.journaldev.com/employee", "Employees"); //append root element to document doc.appendChild(rootElement); //append first child element to root element rootElement.appendChild(getEmployee(doc, "1", "Pankaj", "29", "Java Developer", "Male")); //append second child rootElement.appendChild(getEmployee(doc, "2", "Lisa", "35", "Manager", "Female")); //for output to file, console TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); //for pretty print transformer.setOutputProperty(OutputKeys.INDENT, "yes"); DOMSource source = new DOMSource(doc); //write to console or file StreamResult console = new StreamResult(System.out); StreamResult file = new StreamResult(new File("/Users/pankaj/emps.xml")); //write data transformer.transform(source, console); transformer.transform(source, file); System.out.println("DONE"); } catch (Exception e) { e.printStackTrace(); } } private static Node getEmployee(Document doc, String id, String name, String age, String role, String gender) { Element employee = doc.createElement("Employee"); //set id attribute employee.setAttribute("id", id); //create name element employee.appendChild(getEmployeeElements(doc, employee, "name", name)); //create age element employee.appendChild(getEmployeeElements(doc, employee, "age", age)); //create role element employee.appendChild(getEmployeeElements(doc, employee, "role", role)); //create gender element employee.appendChild(getEmployeeElements(doc, employee, "gender", gender)); return employee; } //utility method to create text node private static Node getEmployeeElements(Document doc, Element element, String name, String value) { Element node = doc.createElement(name); node.appendChild(doc.createTextNode(value)); return node; } }
ログイン後にコピー
ログイン後にコピー

コード内で 2 つの StreamResult オブジェクトが作成されることに注意してください。1 つはデバッグ目的で XML ファイルのコンテンツをコンソールに出力するもので、もう 1 つは XML コンテンツをコンソールに書き込むものです。ファイル。
プログラムによって出力された XML コンテンツ:

 Pankaj29Java DeveloperMale Lisa35ManagerFemale
ログイン後にコピー

XML コンテンツがフォーマットされていません。XML コンテンツを適切にフォーマットする必要がある場合は、この記事「Java で XML をフォーマットする」を参照してください

前のチュートリアルでは、 DOM 解析メソッドは XML ファイルの内容を読み取り、変更します。今日は、DOM 解析メカニズムを使用して XML ファイルを生成する方法を学びます。
XML ファイルを生成するための具体的な要件は次のとおりです:
1. ルート ノード要素は「Employees」、名前空間は「//m.sbmmt.com/」、ルート ノードにはシリーズが含まれます。従業員要素の。
2. 従業員情報は Employee ノードで表され、生成された XML ファイルには 2 つの従業員情報が含まれます。
3. 各従業員には「id」属性があります。
4. Employee 要素には、「名前」、「年齢」、「役割」、「性別」の 4 つのサブ要素があります。
以下はプログラム コードです:

package com.journaldev.xml; import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; public class XMLWriterDOM { public static void main(String[] args) { DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder; try { dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.newDocument(); //add elements to Document Element rootElement = doc.createElementNS("http://www.journaldev.com/employee", "Employees"); //append root element to document doc.appendChild(rootElement); //append first child element to root element rootElement.appendChild(getEmployee(doc, "1", "Pankaj", "29", "Java Developer", "Male")); //append second child rootElement.appendChild(getEmployee(doc, "2", "Lisa", "35", "Manager", "Female")); //for output to file, console TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); //for pretty print transformer.setOutputProperty(OutputKeys.INDENT, "yes"); DOMSource source = new DOMSource(doc); //write to console or file StreamResult console = new StreamResult(System.out); StreamResult file = new StreamResult(new File("/Users/pankaj/emps.xml")); //write data transformer.transform(source, console); transformer.transform(source, file); System.out.println("DONE"); } catch (Exception e) { e.printStackTrace(); } } private static Node getEmployee(Document doc, String id, String name, String age, String role, String gender) { Element employee = doc.createElement("Employee"); //set id attribute employee.setAttribute("id", id); //create name element employee.appendChild(getEmployeeElements(doc, employee, "name", name)); //create age element employee.appendChild(getEmployeeElements(doc, employee, "age", age)); //create role element employee.appendChild(getEmployeeElements(doc, employee, "role", role)); //create gender element employee.appendChild(getEmployeeElements(doc, employee, "gender", gender)); return employee; } //utility method to create text node private static Node getEmployeeElements(Document doc, Element element, String name, String value) { Element node = doc.createElement(name); node.appendChild(doc.createTextNode(value)); return node; } }
ログイン後にコピー
ログイン後にコピー

コード内で 2 つの StreamResult オブジェクトが作成されることに注意してください。1 つはデバッグ目的で XML ファイルのコンテンツをコンソールに出力するもので、もう 1 つは XML コンテンツをコンソールに書き込むものです。ファイル。
プログラムによって出力される XML コンテンツ:

 Pankaj29Java DeveloperMale Lisa35ManagerFemale
ログイン後にコピー

上記は、DOM メソッドを使用して XML ファイルを生成する Java&Xml チュートリアル (4) の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (m.sbmmt.com) を参照してください。 )!


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!