http://www.open-open.com/jsoup/parsing-a-document.htm
测试用网页
doctype html>
<html class="outlin colo">
<head>
<meta charset="utf-8">
<title>长江大学title>
<link type="text/css" rel="stylesheet" href="./css/reset.css">
<link type="text/css" rel="stylesheet" href="./css/layout.css">
<link type="text/css" rel="stylesheet" href="./css/yangtze.css">
<script src="base.js">script>
<script src="./js/nodeObject.js">script>
<script src="./js/yangtze.js">script>
head>
<body>
<div id="content">
<div id="header-imageDiv">div>
<div id="header-menuDiv">
<div id="header-menu-table">
<div class="header-menu-cell"><a href="#" title="首页">首页a>div>
<div class="header-menu-cell"><a href="#" title="机构设置">机构设置a>div>
<div class="header-menu-cell"><a href="#" title="规章制度">规章制度a>div>
<div class="header-menu-cell"><a href="#" title="教学建设">教学建设a>div>
<div class="header-menu-cell"><a href="#" title="教务管理">教务管理a>div>
<div class="header-menu-cell"><a href="#" title="考务管理">考务管理a>div>
<div class="header-menu-cell"><a href="#" title="实践创新">实践创新a>div>
<div class="header-menu-cell"><a href="#" title="质量评估">质量评估a>div>
<div class="header-menu-cell"><a href="#" title="学务管理">学务管理a>div>
<div class="header-menu-cell"><a href="#" title="服务指南">服务指南a>div>
<div class="header-menu-cell"><a href="#" title="下载中心">下载中心a>div>
div>
div>
<div class="space">div>
<div id="header-dateDiv">div>
<div class="space">div>
<div id="table">
<div id="table-left">
<div id="table-left-imageDiv">div>
<div class="space">div>
<h2 class="h2-style">高教信息<a href="#">+MOREa>h2>
<ul class="ul-type-1">
<li style="color : red;"><img src="./images/li_bg.jpg"><a href="#">教育部高等教育司2016年工作要点a>li>
<li><img src="./images/li_bg.jpg"><a href="#">湖北省教育厅高等教育处2016年工作要点a>li>
<li><img src="./images/li_bg.jpg"><a href="#">湖北省教育厅高等教育处2015年工作要点a>li>
<li><img src="./images/li_bg.jpg"><a href="#">省委高校工委 省教育厅关于印发201a>li>
<li><img src="./images/li_bg.jpg"><a href="#">教育部2015年工作要点a>li>
<li><img src="./images/li_bg.jpg"><a href="#">近两年就业率较低的本科专业名单a>li>
ul>
<div class="space">div>
<h2 class="h2-style">友情链接h2>
<div id="select-type">div>
div>
<div class="space">div>
<div id="table-center">
<div id="table-center-topLineDiv"><span id="notice" onmouseover="switchTab(this)">教务通知span><span id="thisweek" onmouseover="switchTab(this)">本周事务span>div>
<ul id="notice-ul">
<li>关于组织2017年(第十二届)长江大学大学生化学实验<span>2017-03-30span>li>
<li>关于核查文科相关学院2013级毕业班学生成绩的通知<span>2017-03-30span>li>
<li>关于组织申报第二批校级双语教学示范课程的通知<span>2017-03-30span>li>
<li>查看更多...li>
ul>
<ul id="thisweek-ul">
<li>2016~2017学年第二学期6~7月份主要教学工作安排<span>2017-03-30span>li>
<li>2016~2017学年第二学期5月份主要教学工作安排<span>2017-03-30span>li>
<li>2016~2017学年第二学期4月份主要教学工作安排<span>2017-03-30span>li>
<li>2016~2017学年第二学期3月份主要教学工作安排<span>2017-03-30span>li>
<li>查看更多...li>
ul>
<div class="chooseTab"><span>教务通知span><span>本周事务span>div>
div>
<div id="table-right">
div>
div>
<div class="space">div>
<div id="bottom-menuDiv">div>
<div class="space">div>
div>
<div id="footer">div>
<script>
setup();
switchTab(elementById("notice"));
addEventss();
script>
body>
html>
Java代码
import java.io.File;
import java.util.ArrayList;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class App {
public static void main(String args[]) {
try {
File input = new File("/Users/YouXianMing/Documents/Project/HTML Project/yangtze/yangtze.html");
Document doc = Jsoup.parse(input, "UTF-8", "http://yangtze.com/");
// 根据元素id获取元素
{
Element content = doc.getElementById("content");
System.out.println(content);
}
// 根据CSS的class名获取元素数组
{
ArrayList list = doc.getElementsByClass("space");
for (Element element : list) {
System.out.println(element + "\n");
}
}
// 根据标签获取元素数组
{
ArrayList list = doc.getElementsByTag("div");
for (Element element : list) {
System.out.println(element + "\n");
}
}
// 根据元素中含有的属性值获取元素数组
{
ArrayList list = doc.getElementsByAttribute("href");
for (Element element : list) {
System.out.println(element + "\n");
}
}
// 根据元素中含有的属性值获取元素数组
{
Element content = doc.getElementById("header-menu-table");
// 元素的父元素
System.out.println(content.parent());
// 元素的所有子元素
System.out.println(content.children());
// 与该元素平级的第一个兄弟元素
System.out.println(content.child(0).firstElementSibling());
// 与该元素平级的最后一个兄弟元素
System.out.println(content.child(0).lastElementSibling());
// 该元素的前一个兄弟元素
System.out.println(content.child(1).previousElementSibling());
// 该元素的下一个兄弟元素
System.out.println(content.child(0).nextElementSibling());
}
// 一个元素中的数据
{
Element content = doc.getElementsByClass("ul-type-1").first().child(0);
// 获取文本内容
System.out.println(content.text());
// 获取tag名字
System.out.println(content.tagName());
// 获取tag对象
System.out.println(content.tag());
// 获取属性字典
System.out.println(content.attributes());
// 获取当前内容当中的html内容
System.out.println(content.html());
// 获取外部的html内容
System.out.println(content.outerHtml());
// 获取属性style的值
System.out.println(content.attr("style"));
}
// 使用选择器语法来查找元素
{
Elements elements = null;
// 通过标签查找元素
elements = doc.select("a");
System.out.println(elements);
// 通过id查找元素
elements = doc.select("#content");
System.out.println(elements);
// 通过class查找元素
elements = doc.select(".ul-type-1");
System.out.println(elements);
// 通过属性查找元素
elements = doc.select("[href]");
System.out.println(elements);
// 通过属性前缀查找元素
elements = doc.select("[^hr]");
System.out.println(elements);
// 通过属性值来查找元素
elements = doc.select("[id=notice]");
System.out.println(elements);
// 匹配属性值开头
elements = doc.select("[onmouseover^=swit]");
System.out.println(elements);
// 匹配属性值结尾
elements = doc.select("[onmouseover$=(this)]");
System.out.println(elements);
// 匹配包含了属性值
elements = doc.select("[onmouseover*=Tab]");
System.out.println(elements);
// 正则表达式匹配
elements = doc.select("ul[id~=^notice]");
System.out.println(elements);
}
} catch (Exception e) {
System.out.println(e);
}
}
}
注意
以下地方请自行替换,本人是从本地加载的html
以下是获取元素的几种情形
Original: https://www.cnblogs.com/YouXianMing/p/6913342.html
Author: YouXianMing
Title: Jsoup的简易使用示例
相关阅读
"方倍", "Description"=
',
',
Title: 微信JSSDK 扫描二维码
```php;gutter:true;
GetSignPackage();
$news = array("Title" =>"方倍", "Description"=>"方倍测试", "PicUrl" =>'http://demo.open.weixin.qq.com/jssdk/images/p2166127561.jpg', "Url" =>'http://www.baidu.com/');
// session_start();
// var_dump($_SESSION);
?>
微信左页扫描
scanQRCode(直接返回结果)
wx.config({
debug: false,
appId: '<?php echo $signPackage["appId"];?>',
timestamp: <?php echo $signPackage["timestamp"];?>,
nonceStr: '<?php echo $signPackage["nonceStr"];?>',
signature: '<?php echo $signPackage["signature"];?>',
// url:'<?php echo $signPackage["url"];?>',
jsApiList: [
// 所有要调用的 API 都要加到这个列表中
'checkJsApi',
'onMenuShareTimeline',
'onMenuShareAppMessage',
'scanQRCode'
]
});
wx.ready(function () {
//自动执行的
wx.checkJsApi({
jsApiList: [
'onMenuShareTimeline',
'onMenuShareAppMessage'
],
success: function (res) {
// alert(JSON.stringify(res));
// alert(JSON.stringify(res.checkResult.getLocation));
// if (res.checkResult.getLocation == false) {
// alert('你的微信版本太低,不支持微信JS接口,请升级到最新的微信版本!');
// return;
// }
}
});
// wx.hideOptionMenu();
wx.onMenuShareAppMessage({
title: '<?php echo $news['Title'];?>',
desc: '<?php echo $news['Description'];?>',
link: '<?php echo $news['Url'];?>',
imgUrl: '<?php echo $news['PicUrl'];?>',
trigger: function (res) {
// 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回
// alert('用户点击发送给朋友');
},
success: function (res) {
// alert('已分享');
},
cancel: function (res) {
// alert('已取消');
},
fail: function (res) {
alert(JSON.stringify(res));
}
});
wx.onMenuShareTimeline({
title: '<?php echo $news['Title'];?>',
link: '<?php echo $news['Url'];?>',
imgUrl: '<?php echo $news['PicUrl'];?>',
trigger: function (res) {
// 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回
// alert('用户点击分享到朋友圈');
},
success: function (res) {
// alert('已分享');
},
cancel: function (res) {
// alert('已取消');
},
fail: function (res) {
alert(JSON.stringify(res));
}
});
// 9.1.2 扫描二维码并返回结果
document.querySelector('#scanQRCode1').onclick = function () {
wx.scanQRCode({
needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有
success: function (res) {
alert(JSON.stringify(res));
var left = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
$.ajax({
url: 'soap.php',
type: 'POST',
data: {left:left},
dataType: 'JSON',
beforeSend:function(){
},
success: function (data) {
alert(JSON.stringify(data));
window.location.href="right.php";
},
complete:function(){
},
error:function(res){
alert("第三方查询接口异常,请重试");
// alert(JSON.stringify(res));
}
});
}
});
};
});
wx.error(function (res) {
alert(res.errMsg);
});
```
Original: https://www.cnblogs.com/txw1958/p/11189281.html
Author: 方倍工作室
Title: 微信JSSDK 扫描二维码