怎么用java做各式标记

Java中,可使用“标记文本,或借助库如Jsoup

Java中,实现各种标记(Markup)通常涉及生成或解析不同格式的标记语言,如HTML、XML、JSON等,以下是如何使用Java进行各式标记的详细指南,包括常用库、基本操作以及示例代码。

怎么用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。

步骤:

  1. 添加Jsoup依赖(如果使用Maven):

     <dependency>
         <groupId>org.jsoup</groupId>
         <artifactId>jsoup</artifactId>
         <version>1.15.4</version>
     </dependency>
  2. 使用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的示例:

怎么用java做各式标记

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的示例:

步骤:

  1. 添加Gson依赖(如果使用Maven):

     <dependency>
         <groupId>com.google.code.gson</groupId>
         <artifactId>gson</artifactId>
         <version>2.10.1</version>
     </dependency>
  2. 使用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的示例:

怎么用java做各式标记

步骤:

  1. 添加CommonMark依赖(如果使用Maven):

     <dependency>
         <groupId>com.atlassian.commonmark</groupId>
         <artifactId>commonmark</artifactId>
         <version>0.21.0</version>
     </dependency>
  2. 使用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文档的内容和结构。

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/64468.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年7月17日 07:12
下一篇 2025年7月17日 07:19

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN