Язык XML - практическое введение (часть 2)


DOM совместимые анализаторы - часть 3


   В следующем примере демонстрируется использование DOM-объектов для вывода содержимого XML документа в двух форматах - в виде дерева элементов и обычной HTML страницы. Немного изменив пример, можно заставить программу сохранять выходной формат в файле и мы получим таким образом обычный XML-HTML конвертор.

/* Пример использования DOM анализатора. Демонстрируется возможность рекурсивного обхода дерева элементов, создание новых элементов, фильтрация элементов (поиска по параметрам) */

import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.util.*;

import org.w3c.dom.*;

import org.xml.sax.Parser; import org.xml.sax.SAXException; import org.xml.sax.helpers.ParserFactory;

import com.ibm.xml.parsers.DOMParser;

public class logParser {

static String defaultParser = "com.ibm.xml.parsers.DOMParser"; static String urlLog; static Document xmldoc = null; static PrintWriter out;

/* Конструктор нашего класса- обработчика. В нем создается выходной поток для печати */

public logParser(String url){ urlLog = url;

try { out = new PrintWriter(new OutputStreamWriter(System.out, "koi8-r")); } catch (UnsupportedEncodingException e) { System.err.println(e.toString()); }

}

public void parseDoc(){ parseDoc(defaultParser); }

/* Создание класса анализатора, обрабтка им XML-документа и создание объектной модели документа */

public void parseDoc(String parserName){

try { Parser parser = ParserFactory.makeParser(parserName); parser.parse(urlLog);

// Получение указателя на корневой элемент документа xmldoc = ((DOMParser)parser).getDocument();

} catch (Exception e) { System.err.println(e.toString()); } }

//========================================================================== // Вывод содержимого документа в виде форматированного списка XML- элементов //========================

public void viewLogAsXML(){

try {

viewLogAsXML(xmldoc,"");

} catch (Exception e) { System.out.println(e.toString()); } out.flush();




Начало  Назад  Вперед



Книжный магазин