Рубрики
Без рубрики

Примеры XML и XSLT синтаксического анализатора Java DOM

Java DOM parser + XML + XSLT пример преобразования XML-файла в другие форматы, такие как HTML.

Автор оригинала: mkyong.

С помощью XSLT (Расширяемые преобразования языка таблиц стилей), мы можем преобразовывать XML-документы в другие форматы, такие как HTML.

Содержание

  • 1. Анализатор и преобразователь DOM
  • 2. Пример DOM: формат XML +
  • 3. Скачать Исходный Код
  • 4. Рекомендации

P.S Протестировано с Java 11

1. Анализатор и преобразователь DOM

Мы можем использовать TransformerFactory для применения файла XSLT для преобразования XML-файла в другой формат.

  TransformerFactory transformerFactory = TransformerFactory.newInstance();

  // add XSLT in Transformer
  Transformer transformer = transformerFactory.newTransformer(
          new StreamSource(new File("format.xslt")));

  transformer.transform(new DOMSource(doc), new StreamResult(output));

2. Пример DOM: формат XML +

Ниже приведен пример синтаксического анализатора Java DOM для анализа XML-файла, применения XSLT-файла и преобразования XML-файла в HTML-файл.

2.1 XML-файл.



    
        mkyong
        support
    
    
        yflow
        admin
    

2.2 Применение приведенного ниже файла XSLT преобразует XML-файл в формат HTML.



    
        

Hello World DOM + XML + XSLT

  • - -

2.3 Вывод, HTML-файл.


  
      

Hello World DOM + XML + XSLT

  • 1001 - mkyong - support
  • 1002 - yflow - admin

2.4 Ниже приведен синтаксический анализатор Java DOM для выполнения преобразования XSLT.

package com.mkyong.xml.dom;

import org.w3c.dom.Document;
import org.xml.sax.SAXException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import java.io.*;

// XML -> XSLT -> Other formats
public class XsltXmlToHtmlDomParser{

    private static final String XML_FILENAME
                          = "src/main/resources/staff-simple.xml";
    private static final String XSLT_FILENAME
                          = "src/main/resources/xslt/staff-xml-html.xslt";

    public static void main(String[] args) {

        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

        try (InputStream is = new FileInputStream(XML_FILENAME)) {

            DocumentBuilder db = dbf.newDocumentBuilder();

            Document doc = db.parse(is);

            // transform xml to html via a xslt file
            try (FileOutputStream output =
                         new FileOutputStream("c:\\test\\staff.html")) {
                transform(doc, output);
            }

        } catch (IOException | ParserConfigurationException |
            SAXException | TransformerException e) {
            e.printStackTrace();
        }

    }

    private static void transform(Document doc, OutputStream output)
            throws TransformerException {

        TransformerFactory transformerFactory = TransformerFactory.newInstance();

        // add XSLT in Transformer
        Transformer transformer = transformerFactory.newTransformer(
                new StreamSource(new File(XSLT_FILENAME)));

        transformer.transform(new DOMSource(doc), new StreamResult(output));

    }

}

Вывод – c:\\test\\staff.html

3. Скачать Исходный Код

$ клон git $ клон git

$ cd java-xml

$ cd src/основной/java/com/mkyong/xml/dom/xslt/

4. Рекомендации

Оригинал: “https://mkyong.com/java/java-dom-parser-xml-and-xslt-examples/”