Top
- BufferedReader br = new BufferedReader(new FileReader(ファイル名(*)));
- InputSource is = new InputSource(br);
- DOMParser parser = new DOMParser();
- try {
- parser.parse(is);
- } catch (SAXException e) {
- ...
- }
- br.close();
- Document document = parser.getDocument(); (*) Webアプリケーションの場合、ファイルはつぎのように指定します。 getServletContext().getRealPath(ファイル名)
- import java.io.*;
- import javax.servlet.*;
- import javax.servlet.http.*;
- import org.w3c.dom.*;
- import org.xml.sax.*;
- import org.apache.xerces.parsers.*;
- public class DomServlet81 extends HttpServlet {
- // doGet()メソッドをオーバーライドする
- public void doGet(HttpServletRequest request,
- HttpServletResponse response)
- throws ServletException, IOException {
- // out オブジェクトを取得する
- response.setContentType("text/html;charset=iso-2022-jp");
- PrintWriter out = response.getWriter();
- // XMLドキュメントの入力ソースを作成する
- String xmlDocumentName = null;
- if ((xmlDocumentName = request.getParameter("doc")) == null) {
- xmlDocumentName = "MyJavaBooks.xml";
- }
- BufferedReader br = new BufferedReader(new FileReader( getServletContext().getRealPath(xmlDocumentName)));
- InputSource is = new InputSource(br);
- // DOMParserのインスタンスを生成する
- DOMParser parser = new DOMParser();
- try {
- // DOMパーサーを使ってDOMツリーを生成する
- parser.parse(is);
- } catch (SAXException e) { throw new ServletException(e.toString()); }
- br.close();
- // DOMパーサーからドキュメントを取得する
- Document doc = parser.getDocument();
- // ドキュメントのすべてのタグのNodeListを取得する
- NodeList nlist = doc.getElementsByTagName("*"), childlist = null;
- String str = "";
- NamedNodeMap map = null;
- // ノードリストをたどる
- for (int i = 0; i < nlist.getLength(); i++) {
- str += "<hr/>☆" + nlist.item(i).getNodeName();
- str += "★" + nlist.item(i).getNodeValue();
- if (nlist.item(i).hasAttributes()) {
- map = nlist.item(i).getAttributes();
- // 属性情報を取り出す(アルファベット順)
- for (int j = 0; j < map.getLength(); j++) {
- str += "△" + map.item(j).getNodeName();
- str += "▲" + map.item(j).getNodeValue();
- }
- }
- if (nlist.item(i).hasChildNodes()) {
- childlist = nlist.item(i).getChildNodes();
- for (int j = 0; j < childlist.getLength(); j++) {
- str += "▽" + childlist.item(j).getNodeName();
- str += "▼" + childlist.item(j).getNodeValue();
- }
- }
- }
- // HTMLテキストを出力する
- out.println("<html>"
- + "<head><title>DOMを使ってXMLドキュメントの情報を取得する</title></head>"
- + "<body>"
- + "<h3>DOMを使ってXMLドキュメントの情報を取得する</h3>" + str
- + "</body></html>");
- }
- }
- <?xml version="1.0" encoding="Shift_JIS" ?>
- <MyJavaBooks>
- <book>
- <name cd-rom="有り" sdk-version="1.3、1.4.0_01">Java GUIコンポーネント 完全制覇</name>
- <series>標準プログラマーズライブラリ</series>
- <publisher>技術評論社</publisher>
- <price>2880</price>
- </book>
- <book>
- <name cd-rom="なし" sdk-version="1.3">はじめてのJava 完全入門</name>
- <series>標準プログラマーズライブラリ</series>
- <publisher>技術評論社</publisher>
- <price>2580</price>
- </book>
- <book>
- <name cd-rom="有り" sdk-version="1.4.0_01、1.4.1">ひとりでできるJava 実践入門</name>
- <series>標準プログラマーズライブラリ</series>
- <publisher>技術評論社</publisher>
- <price>2980</price>
- </book>
- </MyJavaBooks>
□ 実行結果
http://localhost:8080/jmwapp/servlet/DomServlet81![]()
- import java.io.*;
- import javax.servlet.*;
- import javax.servlet.http.*;
- import org.w3c.dom.*;
- import org.xml.sax.*;
- import org.apache.xerces.parsers.*;
- public class DomServlet82 extends HttpServlet {
- // doGet()メソッドをオーバーライドする
- public void doGet(HttpServletRequest request,
- HttpServletResponse response)
- throws ServletException, IOException {
- // out オブジェクトを取得する
- response.setContentType("text/html;charset=iso-2022-jp");
- PrintWriter out = response.getWriter();
- // XMLドキュメントの入力ソースを作成する
- String xmlDocumentName = null;
- if ((xmlDocumentName = request.getParameter("doc")) == null) {
- xmlDocumentName = "MyJavaBooks.xml";
- }
- BufferedReader br = new BufferedReader(new FileReader( getServletContext().getRealPath(xmlDocumentName)));
- InputSource is = new InputSource(br);
- // DOMParserのインスタンスを生成する
- DOMParser parser = new DOMParser();
- try {
- // DOMパーサーを使ってDOMツリーを生成する
- parser.parse(is);
- } catch (SAXException e) { throw new ServletException(e.toString()); }
- br.close();
- // DOMパーサーからドキュメントを取得する
- Document doc = parser.getDocument();
- // ドキュメントのすべてのタグのNodeListを取得する
- NodeList nlist = doc.getElementsByTagName("*"), childlist = null;
- String str = "";
- NamedNodeMap map = null;
- str += "<table border='1'>";
- str += "<tr>";
- str += "<th>要素</th>";
- str += "<th>属性</th>";
- str += "<th>内容</th>";
- str += "</tr>";
- // ノードリストをたどる
- for (int i = 0; i < nlist.getLength(); i++) {
- str += "<tr>";
- // ここにコードを記述してください。
- str += "<td>";
- if (nlist.item(i).hasAttributes()) {
- map = nlist.item(i).getAttributes();
- // 属性情報を取り出す(アルファベット順)
- for (int j = 0; j < map.getLength(); j++) {
- // ここにコードを記述してください。
- str += "<br/>";
- }
- }
- str += "</td>";
- if (nlist.item(i).hasChildNodes()) {
- childlist = nlist.item(i).getChildNodes();
- for (int j = 0; j < childlist.getLength(); j++) {
- if (childlist.item(j).getNodeValue() != null) {
- // ここにコードを記述してください。
- }
- }
- }
- str += "</tr>";
- }
- str += "</table>";
- // HTMLテキストを出力する
- out.println("<html>"
- + "<head><title>DOMを使ってXMLドキュメントの情報を取得する</title></head>"
- + "<body>"
- + "<h3>DOMを使ってXMLドキュメントの情報を取得する</h3>" + str
- + "</body></html>");
- }
- }
□ 実行結果
http://localhost:8080/jmwapp/servlet/DomServlet82![]()
- import java.io.*;
- import javax.servlet.*;
- import javax.servlet.http.*;
- import org.w3c.dom.*;
- import org.xml.sax.*;
- import org.apache.xerces.parsers.*;
- public class DomServlet82 extends HttpServlet {
- // doGet()メソッドをオーバーライドする
- public void doGet(HttpServletRequest request,
- HttpServletResponse response)
- throws ServletException, IOException {
- // out オブジェクトを取得する
- response.setContentType("text/html;charset=iso-2022-jp");
- PrintWriter out = response.getWriter();
- // XMLドキュメントの入力ソースを作成する
- String xmlDocumentName = null;
- if ((xmlDocumentName = request.getParameter("doc")) == null) {
- xmlDocumentName = "MyJavaBooks.xml";
- }
- BufferedReader br = new BufferedReader(new FileReader( getServletContext().getRealPath(xmlDocumentName)));
- InputSource is = new InputSource(br);
- // DOMParserのインスタンスを生成する
- DOMParser parser = new DOMParser();
- try {
- // DOMパーサーを使ってDOMツリーを生成する
- parser.parse(is);
- } catch (SAXException e) { throw new ServletException(e.toString()); }
- br.close();
- // DOMパーサーからドキュメントを取得する
- Document doc = parser.getDocument();
- // ドキュメントのすべてのタグのNodeListを取得する
- NodeList nlist = doc.getElementsByTagName("*"), childlist = null;
- String str = "";
- NamedNodeMap map = null;
- str += "<table border='1'>";
- str += "<tr>";
- str += "<th>要素</th>";
- str += "<th>属性</th>";
- str += "<th>内容</th>";
- str += "</tr>";
- // ノードリストをたどる
- for (int i = 0; i < nlist.getLength(); i++) {
- str += "<tr>";
- // ここにコードを記述してください。
- str += "<td>";
- if (nlist.item(i).hasAttributes()) {
- map = nlist.item(i).getAttributes();
- // 属性情報を取り出す(アルファベット順)
- for (int j = 0; j < map.getLength(); j++) {
- // ここにコードを記述してください。
- str += "<br/>";
- }
- }
- str += "</td>";
- if (nlist.item(i).hasChildNodes()) {
- childlist = nlist.item(i).getChildNodes();
- for (int j = 0; j < childlist.getLength(); j++) {
- if (childlist.item(j).getNodeValue() != null) {
- // ここにコードを記述してください。
- }
- }
- }
- str += "</tr>";
- }
- str += "</table>";
- // HTMLテキストを出力する
- out.println("<html>"
- + "<head><title>DOMを使ってXMLドキュメントの情報を取得する</title></head>"
- + "<body>"
- + "<h3>DOMを使ってXMLドキュメントの情報を取得する</h3>" + str
- + "</body></html>");
- }
- }
□ 実行結果
http://localhost:8080/jmwapp/servlet/DomServlet83![]()
- import java.io.*;
- import javax.servlet.*;
- import javax.servlet.http.*;
- import org.w3c.dom.*;
- import org.apache.xerces.dom.*;
- import org.apache.xml.serialize.*;
- public class CreateXmlDocument81 extends HttpServlet {
- // doGet()メソッドをオーバーライドする
- public void doGet(HttpServletRequest request,
- HttpServletResponse response)
- throws ServletException, IOException {
- // out オブジェクトを取得する
- response.setContentType("text/html;charset=iso-2022-jp");
- PrintWriter out = response.getWriter();
- // 新規ドキュメントのツリーを作成する
- DOMImplementationImpl domimpl = new DOMImplementationImpl();
- Document wdoc = null;
- try {
- wdoc = domimpl.createDocument(null, "animals", null);
- } catch (DOMException e) { throw new ServletException(e.toString()); }
- Element root = wdoc.getDocumentElement();
- Element element = wdoc.createElement("name");
- Text text = wdoc.createTextNode("ウマ");
- element.appendChild(text);
- root.appendChild(element);
- element = wdoc.createElement("name");
- text = wdoc.createTextNode("ヒツジ");
- element.appendChild(text);
- root.appendChild(element);
- element = wdoc.createElement("name");
- text = wdoc.createTextNode("サル");
- element.appendChild(text);
- root.appendChild(element);
- // XMLドキュメントの出力ソースを作成する
- BufferedWriter bwriter = new BufferedWriter(new FileWriter( getServletContext().getRealPath("new.xml")));
- // 出力書式を制御するOutputFormatオブジェクトを作成する
- OutputFormat oform = new OutputFormat(wdoc, "Shift_JIS", true);
- // XMLSerializerシリアライザを作成する
- XMLSerializer serial = new XMLSerializer(bwriter, oform);
- // 作成したツリーを書き出す
- serial.serialize(wdoc);
- bwriter.close();
- // HTMLテキストを出力する
- out.println("<html>"
- + "<head><title>XMLSerializerを使ってnew.xmlドキュメントを生成する</title></head>"
- + "<body>"
- + "<h3>XMLSerializerを使ってnew.xmlドキュメントを生成する</h3>"
- + "</body></html>");
- }
- }
□ 実行結果
http://localhost:8080/jmwapp/servlet/CreateXmlDocument81![]()
□ 実行結果
http://localhost:8080/jmwapp/servlet/DomServlet82Top![]()