xml+html 概述
1.什么是xml
xml 是可扩展标记语言的缩写: Extensible Markup Language。
<root><h1> text 1</h1> </root>web 应用开发,需要配置 web.xml,就是个典型的 xml文件
<web-app><servlet><servlet-name>HelloServlet</servlet-name><servlet-class>HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name>HelloServlet</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping></web-app>dao或者mapper层映射文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.xml.test.mapper.helloMapper"></mapper>上述的 root、h1、 web-app、servlet-name....mapper 整体称为 元素
简单举例: <h1> text 1</h1> 格式为 :<元素名称> 元素内容 </元素名称>
h1就是元素名称, text 1 是元素内容。整体就是一个元素。
2.什么是html
html 是 HyperText Markup Language的缩写,超文本标记语言。
<html><body><p>Hello HTML</p></body> </html>是不是发现 类似 xml?
html 可以简单看成是 xml 的一个子集。
html 用的都是一些预先定义的元素,如 <html>, <a>, <body>, <table> 。
xml 什么元素都可以自定义: 如 <a> , <b>, <aabb> 。
3.XML 和 HTML 的区别:
-
目的:
- XML:用于存储和传输数据,强调数据的结构化。
- HTML:用于创建和显示网页内容,强调如何展示数据。
-
自定义标签:
- XML:可以自定义标签。
- HTML:使用预定义的标签。
-
语法要求:
- XML:要求严格的语法,每个开始标签必须有对应的结束标签,并且标签大小写敏感。
- HTML:语法相对宽松,标签大小写不敏感,部分标签可以没有结束标签(例如
<li>)。
-
使用场景:
- XML:主要用于数据交换,如 Web 服务中的数据传输,配置文件,文档存储等。
- HTML:用于创建网站页面,显示内容给用户。 为啥叫超文本标记语言?因为超越一般文本,其他文本记录数据,而html 记录数据同时,还能呈现出文字颜色,位置,大小等。
4.解析 xml
解析的几种方式:
1. java 本身自带对 xml 的解析。在 javax.xml 这个包下,非常难用,难用到想吐。 这种方式叫做 sax/dom
2. 因为 java 自带的很难用,所以就出现了更方便的第三方工具 dom4j, 解析效率大大提高了。 XML从入门到深入(超详细)-CSDN博客 推荐文章
3. 现在又出现了更方便的 jsoup, 我们就会讲解如何用 jsoup 来解析 xml。前面讲过html 看作xml子集,解析方式一样的。
要求解析:<html><body><p>Hello HTML</p></body></html>
任何开发,除了jdk,jvm自带的包,都要先下载jar包
如:jsoup-1.11.2.jar
package com.test.xml.analysis.example;import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;public class Test {public static void main(String[] args) throws Exception {String html = "<html><body><p>Hello HTML</p></body></html>";
//1. 把文本解析成 Document 对象, Document 对象就代表整个 xml 文档。Document doc = Jsoup.parse(html);//2. 获取所有的 p 元素Elements as= doc.getElementsByTag("p");for (Element e : as) {
//3.打印出p元素中的元素内容System.out.println(e.text());}}
}
5.获取文档 针对4的拆分
5.1获取文档
获取Document对象的方式有多种,常见的就是基于 字符串,文件,网页地址。
package com.test.xml.analysis.example;import java.io.File; import java.net.URL;import org.jsoup.Jsoup; import org.jsoup.nodes.Document;public class Test {public static void main(String[] args) throws Exception {String html1 = "<html><body><p>Hello HTML</p></body></html>";Document doc = Jsoup.parse(html1);System.out.println("基于字符串方式得到的 Document:\r\n"+ doc);File f = new File("a.html");if(f.exists()) {Document fileDoc = Jsoup.parse(f,"utf-8");System.out.println("基于文件方式得到的 Document:\r\n"+ fileDoc);}String url = "http://www.baidu.com";Document urlDoc= Jsoup.parse(new URL(url),5000); //超过5秒就报错System.out.println("基于URL方式得到的 Document:\r\n"+ urlDoc);} }
5.2 获取元素
获取元素比较常见的几种方式: 通过id, 标签或者类名称获取。
假设有文件 b.html 里面内容为:
<div class="header-container"><div class="bookwrapper clearfix"> <div id="brandProdName"><div id="logocover"></div><div id="productName" >Documentation</div></div><br class="clearfloat" /></div></div><a href="https://blog.csdn.net/weixin_48306950/article/details/121639656">循环依赖解决</a> <a href="https://www.baidu.com/">百度网址 </a> <form id="searchForm" onsubmit="return search()"><input type="hidden" name="category" value="java"/><input type="hidden" name="product" value="e25407-01"/><input type="hidden" name="q" value="" id="keywordreal"/><label for="searchField"><input type="text" id="searchField" value="Search the online Java Tutorials"size="30" onclick="this.value='';" /></label><input type="submit" value="Submit" /> </form>java对应 获取元素代码
public static void main(String[] args) throws Exception {File f = new File("b.html");if(!f.exists())return;Document doc = Jsoup.parse(f,"utf-8");//通过id获取 <div id="productName" >Documentation</div>Element e = doc.getElementById("productName");System.out.println(e);//通过标签获取 <a href="h....Elements es;es = doc.getElementsByTag("a");show(es);//通过类名称获取 <div class="header-container">es = doc.getElementsByClass("header-container");show(es);//通过属性获取 <input type="hidden" name="category" value="java"/>es = doc.getElementsByAttribute("name");show(es);}private static void show(Elements es) {for (Element e : es) {System.out.println(e);}}
5.3获取文本和内容
区分文本 内容 <a><b>123</b></a>
- 内容 是指节点的所有数据,包括子元素。 元素a之间为内容
- 文本 是指元素内的纯文本数据,不包括任何标签。 元素b之间为内容
c.html 如下
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body> <div id="d1" class="class1test class2" ><p>Hello, world!</p> </div></body> </html>public static void main(String[] args) { /* File f = new File("c.html");if (!f.exists()) return;*/// 通过类加载器获取资源文件输入流InputStream ins = ResourceLoader.class.getClassLoader().getResourceAsStream("c.html");Document doc = Jsoup.parse(ins, "utf-8", "");Element e = doc.getElementById("d1");//获取属性System.out.println(e.attr("id")); //d1//获取所有属性System.out.println(e.attributes()); // id="d1" class="class1test class2"//获取idSystem.out.println(e.id()); //d1//获取类名称System.out.println(e.className());// class1test class2//获取所有类名称System.out.println(e.classNames());// [class1test, class2]//获取文本System.out.println(e.text()); // Hello, world!//获取html/内容System.out.println(e.html()); // <p>Hello, world!</p>//获取外html 本质就是该元素本身System.out.println(e.outerHtml()); /* <div id="d1" class="class1test class2"> <p>Hello, world!</p> </div> *///获取标签信息System.out.println(e.tagName()); // div }注意:在 Maven 项目中,如果
c.html文件放在src/main/resources目录下,那么该文件会被打包到target/classes目录里,作为类路径资源进行访问。你不能直接使用new File("c.html")来访问这个文件这样在当前工作目录中查找该文件,而不是在类路径中。
回忆下之前概念。 对比上述 div标签 中 添加的内容带 p 标签 ,而不仅是只有文本 Hello

5.4 选择器
选择器语法
在选择元素的时候,除了使用方法名如 getElementById 这样的外,还可以用 选择器语法来选择。 操作起来就像 jquery,比如getElementById 就可以写成是 select("#id")。
package com.test.xml.example;import java.io.File;import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;public class Test {static Document doc;public static void main(String[] args) throws Exception {// 通过类加载器获取资源文件输入流InputStream ins = ResourceLoader.class.getClassLoader().getResourceAsStream("b.html");doc = Jsoup.parse(ins,"utf-8","");//像 jquery 那样的选择器语法show("选择所有的超链", "a");show("根据id进行选择", "#logocover");show("根据class进行选择", ".clearfloat");show("根据属性进行选择", "[href]");show("有属性以tar开头", "[^tar]");show("根据属性值选择", "[type='application/javascript']");show("属性值以什么开头", "[href^='http://www.oracle.com']");show("属性值以什么结尾", "[href$='index.html']");show("属性值包含什么", "[href*='download']");}private static void show(String text, String selector) {show(text,selector,3);}private static void show(String text, String selector, int limit) {Elements es =doc.select(selector);if(es.size()>1)System.out.println(String.format("%s - 使用的选择器是: \"%s\" \t (最多显示 %d 条 )", text,selector,limit)); elseSystem.out.println(String.format("%s - 使用的选择器是: \"%s\"", text,selector)); int i =0;for (Element e : es) {if(i++<limit)System.out.println(e);}System.out.println();}}
b.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-US" xmlns="http://www.w3.org/1999/xhtml" xml:lang=
"en-US">
<head>
<title>The Java™ Tutorials</title>
<meta name="Description" content=
"Tutorials and reference guides for the Java Programming Language" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<style type="text/css">
/*<![CDATA[*/body {margin-left:10px;margin-right:10px;line-height: 1.5;FONT-FAMILY: Arial, Helvetica, sans-serif; font-size: 0.8em;}a:link{text-decoration:none; color:#09569d;}a:visited{text-decoration:none; color: #3a87cf;}a:hover{text-decoration:underline; }.header-container {background-color: #fff;border-bottom: 1px solid #C1CFDA;-webkit-box-shadow: 0 2px 2px rgba(117, 163, 231, 0.1);box-shadow: 0 2px 2px rgba(117, 163, 231, 0.1);}.bookwrapper {width: auto;margin: auto;}.clearfix {}.clearfloat {clear: both;overflow: auto;height: 0px;font-size: 1px;line-height: 0px;}#brandProdName {width: auto;height: auto;}#logocover {display: block;background: transparent url(images/oracle-java-logo.png) 0px 0px no-repeat;height: 50px;width: 229px;float: left;}#productName {font-size: 16px;position: relative;top: 19px;padding-left: 3px;color: #457798;white-space: nowrap;width: 340px;}#TopBar_bl { width: 100%;height: 60px;}#TopBar_br {width: 100%;height: 60px;}#TopBar_tl {margin-left: -110px;margin-right: -100px; align: left;height: 60px;}#TopBar_tr {width: 100%;height: 60px;}#TopBar {min-width:700px;padding:25px 100px 10px;margin-bottom:25px;clear:both;border-bottom:1px solid #d2dde5;border-radius: 3px;background:#efefef; /* Old browsers *//* IE9 SVG, needs conditional override of 'filter' to 'none' */background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNlMmVmZjkiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);background: -moz-linear-gradient(top, #ffffff 0%, #e2eff9 100%); /* FF3.6+ */background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#e2eff9)); /* Chrome,Safari4+ */background: -webkit-linear-gradient(top, #ffffff 0%,#e2eff9 100%); /* Chrome10+,Safari5.1+ */background: -o-linear-gradient(top, #ffffff 0%,#e2eff9 100%); /* Opera 11.10+ */background: -ms-linear-gradient(top, #ffffff 0%,#e2eff9 100%); /* IE10+ */background: linear-gradient(to bottom, #ffffff 0%,#e2eff9 100%); /* W3C */filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#e2eff9',GradientType=0 ); /* IE6-8 */}#TopBar_left {line-height: 14px;position: absolute;padding-top: 30px;padding-right: 30px;padding-left: 30px;text-align: left;font: 13px/20px Arial, Helvetica, sans-serif;font-weight: bold;font-size: 20px;color: #333;}@media print {div#TopBar_left {margin-left: 0;}}@media print {div#TopBar_right {display: none;}}#TopBar_right {line-height: 12px;float: right;padding-top: 10px;padding-right: 30px;text-align: left;}#TopBar_right a {font-size: 12px;margin: 3px;padding: 0;}#Footer {padding-top: 10px;padding-left: 10px;margin-right: 10px; }.footertext {font-size: 10px;font-family: sans-serif; margin-top: 1px;}div#TutBody {margin: 10px 20em 10px 3em;}div.RightBar {font-family: sans-serif; float: right;}div.RightBar img {margin: 0 0 1em 0;}div.RightBox {margin: 10px 3em 10px 0;width: 15em;border-style: double;}div.BlueRightBox {margin: 10px 3em 10px 0;width: 15em;border-style: double;background:#efefef; /* Old browsers *//* IE9 SVG, needs conditional override of 'filter' to 'none' */background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNlMmVmZjkiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);background: -moz-linear-gradient(top, #ffffff 0%, #e2eff9 100%); /* FF3.6+ */background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#e2eff9)); /* Chrome,Safari4+ */background: -webkit-linear-gradient(top, #ffffff 0%,#e2eff9 100%); /* Chrome10+,Safari5.1+ */background: -o-linear-gradient(top, #ffffff 0%,#e2eff9 100%); /* Opera 11.10+ */background: -ms-linear-gradient(top, #ffffff 0%,#e2eff9 100%); /* IE10+ */background: linear-gradient(to bottom, #ffffff 0%,#e2eff9 100%); /* W3C */filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#e2eff9',GradientType=0 ); /* IE6-8 */}div.Pad {font-size: 80%;padding: 1em;}div.Pad h2 {text-align: center;margin: 0;}div.Pad div {display: list-item;list-style-image: url(images/arrow-right-gray.gif);margin: 0.3em 1em;}ul.BlueArrows {list-style-image: url(images/ar_dbl_blue.gif);}ul.BlueArrows a:visited, ul.BlueArrows a:link {text-decoration: none;}ul.BlueArrows a:hover, ul.BlueArrows a:active {text-decoration: underline;}h1, h2, h3, h4, h5 {color: #333;font-family: sans-serif;}h1 {font-weight: bold;font-size: 20px;}h2 {font-weight: bold;font-size: 17px;}h3 {font-weight: bold;font-size: 14px;}h4 {font-size: 15px;}h5 {font-size: 12px;}/*]]>*/
</style>
<script>window.ohcglobal || document.write('<script src="https://how2j.cn/en/dcommon/js/global.js">\x3C/script>')</script><script src='/en/dcommon/js/disclaimer.js' defer></script></head>
<body>
<noscript>A browser with JavaScript enabled is required for this
page to operate properly.</noscript>
<div class="header-container"><div class="bookwrapper clearfix"> <div id="brandProdName"><div id="logocover"></div><div id="productName" >Documentation</div></div> <br class="clearfloat" /></div>
</div><div id="TopBar"><div id="TopBar_tr"><div id="TopBar_tl"><div id="TopBar_br"><div id="TopBar_bl"> <div id="TopBar_left">The Java™ Tutorials</div><div id="TopBar_right"><script type="text/javascript">
function search() {var sform = document.getElementById("searchForm");var srchelem = document.getElementById("searchField");var srchelemreal = document.getElementById("keywordreal");var srchval = srchelem.value;if (srchval.length == 0) {return false;}srchelemreal.value = srchval;sform.action = "http://docs.oracle.com/apps/search/search.jsp";sform.method = "get";sform.target = "_blank";sform.submit();
}
</script><form id="searchForm" onsubmit="return search()"><input type="hidden" name="category" value="java"/><input type="hidden" name="product" value="e25407-01"/><input type="hidden" name="q" value="" id="keywordreal"/><label for="searchField"><input type="text" id="searchField" value="Search the online Java Tutorials"size="30" onclick="this.value='';" /></label><input type="submit" value="Submit" />
</form></div> </div></div></div></div>
</div><div class="RightBar"><img src="images/ThinkingDuke.png" width=
"124" height="128" align="middle" alt=
"Duke thinking about what to study" style="margin-top:2px" /><br />
Not sure where to start?<br />
See <a href="tutorialLearningPaths.html">Learning Paths</a>
<div class="BlueRightBox">
<center>
<h2>Tutorial Contents</h2>
</center>
<div>
<center><a href="reallybigindex.html"><img src=
"images/really_big_index_button.gif" width="108" height="22" align=
"middle" alt="really big index button" /></a></center>
</div>
</div>
<div class="RightBox">
<div class="Pad">
<h2>Tutorial Resources</h2>
<div>Last Updated <a href=
"information/history.html">7/19/2016</a></div>
<div><a href="https://blogs.oracle.com/thejavatutorials/">The Java
Tutorials' Blog</a> has news and updates about the Java SE
tutorials.</div>
<div><a href=
"http://www.oracle.com/technetwork/java/javase/java-tutorial-downloads-2005894.html">
Download the latest Java Tutorials bundle</a>.</div>
</div>
</div>
<div class="RightBox">
<div class="Pad">
<h2>In Book Form</h2>
<div><i>The Java Tutorial, Sixth Edition.</i> <a href=
"http://www.amazon.com/The-Java-Tutorial-Course-Edition/dp/0134034082"
target="_blank">Amazon.com</a>.</div>
</div>
</div>
<div class="RightBox">
<div class="Pad">
<h2>Other Resources</h2>
<div><a href="https://docs.oracle.com/javase/8/docs/">Java SE 8
Developer Guides</a></div>
<div><a href="https://docs.oracle.com/javase/8/docs/api">JDK 8 API
Documentation</a></div>
</div>
</div>
<div class="RightBox">
<div class="Pad">
<h2>Oracle Training and Professional Certification</h2>
<div><a href=
"http://education.oracle.com/pls/web_prod-plq-dad/ou_product_category.getFamilyPage?p_family_id=48">
Java Certification and Training</a></div>
<div><a href=
"http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=3">
Oracle University</a></div>
</div>
</div>
<div class="RightBox">
<div class="Pad">
<h2>Software</h2>
<div>The <a href=
"http://www.oracle.com/technetwork/java/javase/downloads/index.html">
Java Development Kit</a> (JDK)</div>
<!-- <div><a href="https://netbeans.org/">NetBeans IDE</a></div> --><!--<div><a href=
"http://www.oracle.com/technetwork/java/javaee/downloads/index.html">
Java EE SDK</a></div>--></div>
</div>
</div>
<div id="TutBody">
<p style="background-color: rgb(247, 248, 249); border-width: 1px; padding: 10px; font-style: italic; border-style: solid; border-color: rgb(64, 74, 91);">The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available.<br/>See <a href="https://www.oracle.com/technetwork/java/javase/jdk-relnotes-index-2162236.html">JDK Release Notes</a> for information about new features, enhancements, and removed or deprecated options for all JDK releases.</p>
<p>The Java Tutorials are practical guides for
programmers who want to use the Java programming language to create
applications. They include hundreds of complete, working examples,
and dozens of lessons. Groups of related lessons are organized into
"trails".</p><h2>Trails Covering the Basics</h2>
These trails are available in book form as <i>The Java Tutorial,
Sixth Edition</i>. To buy this book, refer to the box to the right.
<ul class="BlueArrows">
<li><a href="getStarted/index.html">Getting Started</a> — An
introduction to Java technology and lessons on installing Java
development software and using it to create a simple program.</li>
<li><a href="java/index.html">Learning the Java Language</a>
— Lessons describing the essential concepts and features of
the Java Programming Language.</li>
<li><a href="essential/index.html">Essential Java Classes</a>
— Lessons on exceptions, basic input/output, concurrency,
regular expressions, and the platform environment.</li>
<li><a href="collections/index.html">Collections</a> —
Lessons on using and extending the Java Collections Framework.</li>
<li><a href="datetime/index.html">Date-Time APIs</a> — How to
use the <tt>java.time</tt> pages to write date and time code.</li>
<li><a href="deployment/index.html">Deployment</a> — How to
package applications and applets using JAR files, and deploy them
using Java Web Start and Java Plug-in.</li>
<li><a href="extra/certification/index.html">Preparation for Java
Programming Language Certification</a> — List of available
training and tutorial resources.</li>
</ul>
<h2>Creating Graphical User Interfaces</h2>
<ul class="BlueArrows">
<li><a href="uiswing/index.html">Creating a GUI with Swing</a>
— A comprehensive introduction to GUI creation on the Java
platform.</li>
<li><a href="https://docs.oracle.com/javafx/index.html">Creating a
JavaFX GUI</a> — A collection of JavaFX tutorials.</li>
</ul>
<h2>Specialized Trails and Lessons</h2>
<p>These trails and lessons are only available as web pages.</p>
<ul class="BlueArrows">
<li><a href="networking/index.html">Custom Networking</a> —
An introduction to the Java platform's powerful networking
features.</li>
<li><a href="ext/index.html">The Extension Mechanism</a> —
How to make custom APIs available to all applications running on
the Java platform.</li>
<li><a href="extra/fullscreen/index.html">Full-Screen Exclusive
Mode API</a> — How to write applications that more fully
utilize the user's graphics hardware.</li>
<li><a href="extra/generics/index.html">Generics</a> — An
enhancement to the type system that supports operations on objects
of various types while providing compile-time type safety. Note
that this lesson is for advanced users. The <a href=
"java/index.html">Java Language</a> trail contains a <a href=
"java/generics/index.html">Generics</a> lesson that is suitable for
beginners.</li>
<li><a href="i18n/index.html">Internationalization</a> — An
introduction to designing software so that it can be easily adapted
(localized) to various languages and regions.</li>
<li><a href="javabeans/index.html">JavaBeans</a> — The Java
platform's component technology.</li>
<li><a href="jdbc/index.html">JDBC Database Access</a> —
Introduces an API for connectivity between the Java applications
and a wide range of databases and data sources.</li>
<li><a href="jmx/index.html">JMX</a>— Java Management
Extensions provides a standard way of managing resources such as
applications, devices, and services.</li>
<li><a href="jndi/index.html">JNDI</a>— Java Naming and
Directory Interface enables accessing the Naming and Directory
Service such as DNS and LDAP.</li>
<li><a href="jaxp/index.html">JAXP</a> — Introduces the Java
API for XML Processing (JAXP) technology.</li>
<li><a href="jaxb/index.html">JAXB</a> — Introduces the Java
architecture for XML Binding (JAXB) technology.</li>
<li><a href="rmi/index.html">RMI</a> — The Remote Method
Invocation API allows an object to invoke methods of an object
running on another Java Virtual Machine.</li>
<li><a href="reflect/index.html">Reflection</a> — An API that
represents ("reflects") the classes, interfaces, and objects in the
current Java Virtual Machine.</li>
<li><a href="security/index.html">Security</a> — Java
platform features that help protect applications from malicious
software.</li>
<li><a href="sound/index.html">Sound</a> — An API for playing
sound data from applications.</li>
<li><a href="2d/index.html">2D Graphics</a> — How to display
and print 2D graphics in applications.</li>
<li><a href="sdp/index.html">Sockets Direct Protocol</a> —
How to enable the Sockets Direct Protocol to take advantage of
InfiniBand.</li>
</ul>
</div><hr />
<div id="Footer"><p class="footertext">
<a href="http://www.oracle.com/corporate/index.html">About Oracle</a> |
<a href="http://www.oracle.com/us/corporate/contact/index.html">Contact Us</a> |
<a href="http://www.oracle.com/us/legal/index.html">Legal Notices</a> |
<a href="http://www.oracle.com/us/legal/terms/index.html">Terms of Use</a> |
<a href="http://www.oracle.com/us/legal/privacy/index.html">Your Privacy Rights</a></p><p class="footertext"><a href="http://www.oracle.com/pls/topic/lookup?ctx=cpyr&id=en-US">
Copyright © 1995, 2019 Oracle and/or its affiliates. All rights reserved.</a></p></div><!-- Start SiteCatalyst code -->
<script type="application/javascript" src="https://www.oracleimg.com/us/assets/metrics/ora_docs.js"></script>
<!-- End SiteCatalyst code -->
</body>
</html>
5.5 操作属性和内容
5.5之前都是读取,那么问题来了-能修改吗?可以啊,不然网页上标签等变颜色,图片咋来的
jsoup 除了可以解析 html/xml 外,还可以进行修改行为。

如图示例,给 P元素 增加class (类属性),并修改内容
public static void main(String[] args) throws Exception {/* File f = new File("c.html"); 直接读取if (!f.exists()) return;*/// 通过类加载器获取资源文件输入流 因为maven项目 放在 resources目录下,用加载器获取InputStream ins = ResourceLoader.class.getClassLoader().getResourceAsStream("d.html");Document doc = Jsoup.parse(ins, "utf-8", "");System.out.println(doc);Element e = doc.select("p").first();e.attr("class", "class1");e.appendText(" Hello JSoup");//原文本追加 文字/文本System.out.println();System.out.println(doc);}
相关文章:
xml+html 概述
1.什么是xml xml 是可扩展标记语言的缩写: Extensible Markup Language。 <root><h1> text 1</h1> </root> web 应用开发,需要配置 web.xml,就是个典型的 xml文件 <web-app><servlet><servlet-name&…...
混合精度训练中的算力浪费分析:FP16/FP8/BF16的隐藏成本
在大模型训练场景中,混合精度训练已成为降低显存占用的标准方案。然而,通过NVIDIA Nsight Compute深度剖析发现,精度转换的隐藏成本可能使理论算力利用率下降40%以上。本文基于真实硬件测试数据,揭示不同精度格式的计算陷阱。…...
Python语法系列博客 · 第5期[特殊字符] 模块与包的导入:构建更大的程序结构
上一期小练习解答(第4期回顾) ✅ 练习1:判断偶数函数 def is_even(num):return num % 2 0print(is_even(4)) # True print(is_even(5)) # False✅ 练习2:求平均值 def avg(*scores):return sum(scores) / len(scores)print(…...
Sleuth+Zipkin 服务链路追踪
微服务架构中,为了更好追踪服务之间调用,实现时间分析,性能瓶颈分析,故障排查,因此有必要搭建链路追踪。下面简单介绍下实现的过程。 一.引入依赖 <!-- 链路追踪 zipkin已经集成有sleuth,不需要再单独…...
意志力的源头——AMCC(前部中扣带皮层)
AMCC(前部中扣带皮层)在面对痛苦需要坚持的事情时会被激活。它的存在能够使人类个体在面临困难的事、本能感到不愿意的麻烦事情时,能够自愿地去做这些事——这些事必须是局部痛苦或宏观的痛苦,即微小的痛苦micro-sucks。 AMCC更多…...
[Jenkins]pnpm install ‘pnpm‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。
这个错误提示再次说明:你的系统(CMD 或 Jenkins 环境)找不到 pnpm 命令的位置。虽然你可能已经用 npm install -g pnpm 安装过,但系统不知道它装在哪里,也就无法执行 pnpm 命令。 ✅ 快速解决方法:直接用完…...
Java从入门到“放弃”(精通)之旅——数组的定义与使用⑥
Java从入门到“放弃”(精通)之旅🚀——数组⑥ 前言——什么是数组? 数组:可以看成是相同类型元素的一个集合,在内存中是一段连续的空间。比如现实中的车库,在java中,包含6个整形类…...
部署rocketmq集群
容器化部署RocketMQ5.3.1集群 背景: 生产环境单机的MQ不具有高可用,所以我们应该部署成集群模式,这里给大家部署一个双主双从异步复制的Broker集群 一、安装docker yum install -y docker systemctl enable docker --now # 单机部署参考: https://www.cnblogs.com/hsyw/p/1…...
如何对docker镜像存在的gosu安全漏洞进行修复——筑梦之路
这里以mysql的官方镜像为例进行说明,主要流程为: 1. 分析镜像存在的安全漏洞具体是什么 2. 根据分析结果有针对性地进行修复处理 3. 基于当前镜像进行修复安全漏洞并复核验证 # 镜像地址mysql:8.0.42 安全漏洞现状分析 dockerhub网站上获取该镜像的…...
Ubuntu 安装WPS Office
文章目录 Ubuntu 安装WPS Office下载安装文件安装WPS问题1.下载缺失字体文件2.安装缺失字体 Ubuntu 安装WPS Office 下载安装文件 需要到 WPS官网 下载最新软件,比如wps-office_12.1.0.17900_amd64.deb 安装WPS 执行命令进行安装 sudo dpkg -i wps-office_12.1…...
基于springboot的老年医疗保健系统
博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了六年的毕业设计程序开发,开发过上千套毕业设计程序,没有什么华丽的语言࿰…...
使用Ollama本地运行deepseek模型
Ollama 是一个用于管理 AI 模型的工具 下载 Ollama Ollama 选择版本 下载模型 安装好后,下载模型 选择模型 选择模型大小,复制对应命令(越大越聪明,但是内存要求越高) 打开控制台运行命令,第一次运行会自动…...
网络编程 - 3
目录 UDP 连接拓展(业务逻辑) 词典服务器实现 完 UDP 连接拓展(业务逻辑) 我们上一篇文章实现了一个回显服务器,在服务端中业务方法 process 中,只是单纯的将客户端输入的东西 return 了一下࿰…...
rebase和merge的区别
目录 1. 合并机制与提交历史 2. 冲突处理方式 3. 历史追溯与团队协作 4. 推荐实践 5. 撤销难度 git rebase和git merge是Git中两种不同的分支合并策略,核心区别在于提交历史的处理方式:merge保留原始分支结构并生成合并提交&am…...
5G 毫米波滤波器的最优选择是什么?
新的选择有很多,但到目前为止还没有明确的赢家。 蜂窝电话技术利用大量的带带,为移动用途提供不断增加的带宽。 其中的每一个频带都需要透过滤波器将信号与其他频带分开,但目前用于手机的滤波器技术可能无法扩展到5G所规划的全部毫米波&#…...
【HDFS入门】HDFS性能调优实战:压缩与编码技术深度解析
目录 1 HDFS性能调优概述 2 HDFS压缩技术原理与应用 2.1 常见压缩算法比较 2.2 压缩流程架构 2.3 压缩配置实践 3 列式存储编码技术 3.1 ORC与Parquet对比 3.2 ORC文件结构 3.3 Parquet编码流程 4 性能调优实战建议 4.1 压缩选择策略 4.2 编码优化技巧 5 性能测试…...
如何在 IntelliJ IDEA 中安装通义灵码 - AI编程助手提升开发效率
随着人工智能技术的飞速发展,AI 编程助手已成为提升开发效率和代码质量的强大工具。在众多 AI 编程助手之中,阿里云推出的通义灵码凭借其智能代码补全、代码解释、生成单元测试等丰富功能,脱颖而出,为开发者带来了全新的编程体验。…...
从零到一:管理系统设计新手如何快速上手?
管理系统设计是一项复杂而富有挑战性的任务,它要求设计者具备多方面的知识和技能,包括需求分析、架构设计、数据管理、用户界面设计等。对于初次接触这一领域的新手而言,如何快速上手并成为一名合格的管理系统设计者呢?本文将从管…...
WSL (ext4.vhdx文件)占用空间过大,清理方式记录,同时更改 WSL 保存位置
一、问题 之前使用 WSL Ubuntu 进行过开发板的 Yocto 项目编译,占用空间达到了 70GB 多的空间。后来进行了项目迁移,删除了 WSL 中的所有文件,但是从 Windows 查看空间占用却没有减少: 占用依然是 70 多,查阅发现 vhdx…...
深入解析Java日志框架Logback:从原理到最佳实践
Logback作为Java领域最主流的日志框架之一,由Log4j创始人Ceki Glc设计开发,凭借其卓越的性能、灵活的配置以及与SLF4J的无缝集成,成为企业级应用开发的首选日志组件。本文将从架构设计、核心机制、配置优化等维度全面剖析Logback的技术细节。 一、Logback的架构设计与核心模…...
PCI总线和PCIe总线
本文来源:腾讯元宝 PCI(Peripheral Component Interconnect,外围组件互连) 是一种由 Intel 在 1991年 提出的 并行总线标准,用于连接计算机主板上的各种外设(如显卡、网卡、声…...
《软件设计师》复习笔记(14.2)——统一建模语言UML、事务关系图
目录 1. UML概述 2. UML构造块 (1) 事物(Things) (2) 关系(Relationships) 真题示例: 3. UML图分类 (1) 结构图(静态) (2) 行为图(动态) 4. 核心UML图详解 5.…...
Flash存储器(三):eMMC与UFS协议标准
目录 一.协议介绍 1.1 eMMC协议标准 1.1.1 设计背景 1.1.2 协议演进 1.2 UFS协议标准 1.2.1 设计背景 1.2.2 协议演进 二.特性对比 三.应用场景 在嵌入式存储领域,eMMC(嵌入式多媒体卡)和UFS(通用闪存存储ÿ…...
在RK3588上使用哪个流媒体服务器合适
在RK3588平台上选择合适的流媒体服务器时,需考虑其ARM Cortex-A76/A55架构、硬件编解码能力(如支持H.264/H.265/AV1解码)以及Linux/Android系统支持。以下是推荐的方案: 1. 轻量级方案:GStreamer RTSP 适用场景&…...
PHP8.2.9NTS版本使用composer报错,扩展找不到的问题处理
使用composer install时报错: The openssl extension is required for SSL/TLS protection but is not available. If you can not enable the openssl extension, you can disable this error, at y our own risk, by setting the ‘disable-tls’ option to true.…...
[文献阅读] EnCodec - High Fidelity Neural Audio Compression
[文献信息]:[2210.13438] High Fidelity Neural Audio Compression facebook团队提出的一个用于高质量音频高效压缩的模型,称为EnCodec。Encodec是VALL-E的重要前置工作,正是Encodec的压缩量化使得VALL-E能够出现,把语音领域带向大…...
【操作系统原理01】操作系统引论
文章目录 大纲一、中断与异常0.大纲1. 中断的作用2. 中断类型2.1 内中断2.2 外中断2.3 判断内外中断 3. 中断机制原理 二、系统调用0. 大纲1.什么是系统调用2.系统调用分类 三、操作性系统内核(了解)0.大纲1.内核2.各种操作系统结构特性 四、操作系统引论0.大纲1.磁盘存储 图片…...
http请求和websocket区别和使用场景
这个问题问得很好,下面我分几部分来详细讲解 WebSocket 的传输能力、适用场景,以及为什么即使用了 WebSocket,我们仍然会用 HTTP 接口👇 ✅ 一、WebSocket 可以传输多少内容? 理论上: WebSocket 协议本身…...
动态规划经典例题:最长单调递增子序列、完全背包、二维背包、数字三角形硬币找零
一.最长单调递增子序列 设计一个O(n^2)时间的算法,找出由n个数组成的序列的最长单调递增子序列。 实验原理 状态转移方程(递推公式): 对于每个 i,遍历之前的元素 j,如果 nums[j] < nums[i]࿰…...
最新得物小程序sign签名加密,请求参数解密,响应数据解密逆向分析
点击精选,出现https://app.dewu.com/api/v1/h5/index/fire/index 这个请求 直接搜索sign的话不容易定位 直接搜newAdvForH5就一个,进去再搜sign,打上断点 可以看到t.params就是没有sign的请求参数, 经过Object(a.default)该函数…...
