怎么用java做各式标记
- 后端开发
- 2025-07-17
- 4874
 Java中,可使用“标记文本,或借助库如Jsoup
 
Java中,实现各种标记(Markup)通常涉及生成或解析不同格式的标记语言,如HTML、XML、JSON等,以下是如何使用Java进行各式标记的详细指南,包括常用库、基本操作以及示例代码。
使用Java生成和解析HTML标记
1 生成HTML内容
在Java中,可以通过字符串拼接或使用模板引擎来生成HTML内容,以下是一个简单的示例,展示如何生成基本的HTML页面:
public class HtmlGenerator {
    public static void main(String[] args) {
        String html = "<!DOCTYPE html>
" +
                      "<html>
" +
                      "<head>
" +
                      "    <title>示例页面</title>
" +
                      "</head>
" +
                      "<body>
" +
                      "    <h1>欢迎使用Java生成HTML</h1>
" +
                      "    <p>这是一个段落。</p>
" +
                      "</body>
" +
                      "</html>";
        System.out.println(html);
    }
} 
2 解析HTML内容
解析HTML可以使用Jsoup库,它是一个强大的HTML解析器,能够处理不规范的HTML。
步骤:
-  添加Jsoup依赖(如果使用Maven): <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.15.4</version> </dependency>
-  使用Jsoup解析HTML:  import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; public class HtmlParserExample { public static void main(String[] args) { String html = "<html><head><title>示例</title></head>" + "<body><h1>标题</h1><p>内容</p></body></html>"; Document doc = Jsoup.parse(html); // 获取标题 String title = doc.title(); System.out.println("标题: " + title); // 获取h1标签内容 Element h1 = doc.selectFirst("h1"); System.out.println("H1内容: " + h1.text()); } }
使用Java生成和解析XML标记
1 生成XML内容
可以使用Java的javax.xml包或第三方库如JAXB来生成XML,以下是使用DOM方式生成简单XML的示例:
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class XmlGenerator {
    public static void main(String[] args) {
        try {
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document doc = builder.newDocument();
            // 创建根元素
            Element root = doc.createElement("books");
            doc.appendChild(root);
            // 添加子元素
            Element book = doc.createElement("book");
            book.setAttribute("id", "1");
            book.setAttribute("title", "Java编程思想");
            root.appendChild(book);
            // 转换为字符串
            TransformerFactory transformerFactory = TransformerFactory.newInstance();
            Transformer transformer = transformerFactory.newTransformer();
            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
            DOMSource source = new DOMSource(doc);
            StreamResult result = new StreamResult(System.out);
            transformer.transform(source, result);
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
} 
2 解析XML内容
同样可以使用DOM解析器或SAX解析器,以下是使用DOM解析XML的示例:
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.;
public class XmlParserExample {
    public static void main(String[] args) {
        try {
            String xml = "<books><book id='1' title='Java编程思想'/></books>";
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document doc = builder.parse(new InputSource(new StringReader(xml)));
            NodeList books = doc.getElementsByTagName("book");
            for(int i=0; i<books.getLength(); i++) {
                Element book = (Element) books.item(i);
                String id = book.getAttribute("id");
                String title = book.getAttribute("title");
                System.out.println("Book ID: " + id + ", Title: " + title);
            }
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
} 
使用Java生成和解析JSON标记
1 生成JSON内容
可以使用Jackson或Gson库来生成和解析JSON,以下是使用Gson生成JSON的示例:
步骤:
-  添加Gson依赖(如果使用Maven):  <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.10.1</version> </dependency>
-  使用Gson生成JSON: import com.google.gson.Gson; import com.google.gson.GsonBuilder; class Book { private int id; private String title; // 构造方法、getter和setter省略 public Book(int id, String title) { this.id = id; this.title = title; } // Getters and Setters public int getId() { return id; } public String getTitle() { return title; } } public class JsonGeneratorExample { public static void main(String[] args) { Book book = new Book(1, "Java编程思想"); Gson gson = new GsonBuilder().setPrettyPrinting().create(); String json = gson.toJson(book); System.out.println(json); } }
2 解析JSON内容
使用Gson解析JSON:
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
class Book {
    private int id;
    private String title;
    // Getters and setters省略
    public int getId() { return id; }
    public String getTitle() { return title; }
}
public class JsonParserExample {
    public static void main(String[] args) {
        String json = "{"id":1,"title":"Java编程思想"}";
        Gson gson = new Gson();
        Book book = gson.fromJson(json, Book.class);
        System.out.println("Book ID: " + book.getId() + ", Title: " + book.getTitle());
    }
} 
使用Java进行Markdown标记处理
1 生成Markdown内容
Markdown是一种轻量级标记语言,可以通过字符串拼接生成。
public class MarkdownGenerator {
    public static void main(String[] args) {
        String markdown = "# 示例标题
" +
                          "这是一个段落,包含加粗和斜体。
" +
                          "列表项1
" +
                          "列表项2";
        System.out.println(markdown);
    }
} 
2 解析Markdown内容
可以使用CommonMark或其他库将Markdown转换为HTML,以下是使用CommonMark的示例:
步骤:

-  添加CommonMark依赖(如果使用Maven): <dependency> <groupId>com.atlassian.commonmark</groupId> <artifactId>commonmark</artifactId> <version>0.21.0</version> </dependency>
-  使用CommonMark解析Markdown: import org.commonmark.node.; import org.commonmark.parser.Parser; import org.commonmark.renderer.html.HtmlRenderer; public class MarkdownParserExample { public static void main(String[] args) { String markdown = "# 示例标题 这是一个段落。"; Parser parser = Parser.builder().build(); Node document = parser.parse(markdown); HtmlRenderer renderer = HtmlRenderer.builder().build(); String html = renderer.render(document); System.out.println(html); } }
表格生成与解析示例
1 生成HTML表格
public class HtmlTableGenerator {
    public static void main(String[] args) {
        StringBuilder table = new StringBuilder();
        table.append("<table border='1'>
");
        table.append("    <tr><th>编号</th><th>名称</th></tr>
");
        table.append("    <tr><td>1</td><td>苹果</td></tr>
");
        table.append("    <tr><td>2</td><td>香蕉</td></tr>
");
        table.append("</table>");
        System.out.println(table.toString());
    }
} 
2 解析HTML表格(使用Jsoup)
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
public class HtmlTableParserExample {
    public static void main(String[] args) {
        String html = "<table border='1'><tr><th>编号</th><th>名称</th></tr>" +
                      "<tr><td>1</td><td>苹果</td></tr>" +
                      "<tr><td>2</td><td>香蕉</td></tr></table>";
        Document doc = Jsoup.parse(html);
        Elements rows = doc.select("table tr");
        for(int i=0; i<rows.size(); i++) {
            Element row = rows.get(i);
            Elements cols = row.select("td, th");
            for(int j=0; j<cols.size(); j++) {
                System.out.print(cols.get(j).text() + "t");
            }
            System.out.println();
        }
    }
} 
相关问答FAQs
Q1: Jsoup库的主要功能是什么?
A1: Jsoup是一个用于解析HTML的Java库,它能够解析不规范的HTML文档,提供类似于jQuery的API来遍历和操作HTML元素,主要功能包括:
- 从URL、文件或字符串中解析HTML内容。
- 使用CSS选择器语法查找元素。
- 修改HTML文档的内容和结构。
 
  
			