Parser将网页信息解析成为一棵节点树,Node(节点里)保存了信息。

下面是一些常用的类和方法:

Parser解析类方法:
NodeIterator elements(); 获取节点迭代器(此方法搭配迭代器的方法可用于获取根节点,详见示例)
void setEncoding(String encoding); 设置编码方式

NodeIterator节点迭代器:
Node nextNode(); 下一个节点
boolean hasMoreNodes(); 是否还有Node,是则返回true,否则返回false

Node类树形结构进行遍历的函数:
Node getParent(): 取得父节点
NodeList getChildren (): 取得子节点的列表(数组)
Node getFirstChild (): 取得第一个子节点
Node getLastChild (): 取得最后一个子节点
Node getPreviousSibling (): 取得前一个兄弟节点
Node getNextSibling (): 取得后一个兄弟节点

Node类取得Node内容的函数:
String getText (): 取得文本
String toPlainTextString(): 取得纯文本信息。
String toHtml () : 取得HTML信息(原始HTML)
String toHtml (boolean verbatim): 取得HTML信息(原始HTML)
String toString (): 取得字符串信息(原始HTML)
Page getPage (): 取得这个Node对应的Page对象
int getStartPosition (): 取得这个Node在HTML页面中的起始位置
int getEndPosition (): 取得这个Node在HTML页面中的结束位置

Nodelist节点数组类方法:
Node[] toNodeArray(); 转换成节点数组

示例:递归输出网页节点信息

package ParserStudy;
import org.htmlparser.Node;
import org.htmlparser.Parser;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;
public class TestNode {
	public static void main(String[] args) throws ParserException {
		// TODO Auto-generated method stub
		String url = "http://localhost:81/hello.php";
		String encoding = "GBK";
		Parser parser = new Parser(url);
		parser.setEncoding(encoding);
		Node root = parser.elements().nextNode(); //获取根节点
		showNode(root);
	public static void showNode(Node node)
		if(node == null)
			return;
		System.out.println("=============================================");
		System.out.println("getText:"+node.getText());
		System.out.println("toPlainTextString:"+node.toPlainTextString());
		System.out.println("toHtml:"+node.toHtml());
		System.out.println("toString:"+node.toString());
		System.out.println("=============================================");
		//获取子节点
		NodeList nodelist = node.getChildren();
		if(nodelist == null)
			return;
		Node[] na = nodelist.toNodeArray();
		//迭代输出Node信息
		for(Node i:na)
			showNode(i);

下面是原网页: 我的名字叫:小明性别;男我的年龄是:20<br>我的名字叫:熊性别;女我的年龄是:30<br>我的名字叫:向日葵性别;男我的年龄是:25<br> </body> </html>

源网页使用HTML标签,以标签为节点,标签里含的文本(换行符当成文本)和标签为子节点,形成的节点树状图为:

递归时,从根节点开始,先输出根节点的信息,然后依次输出根节点的子节点信息。
从输出的结果可知:
1.HTML的双标签会解析为一个节点
2.HTML的单标签会解析为一个节点
3.文本会解析为一个节点
4.脚本里的换行符会当成文本,从而成为了一个节点(所以第二个输出的节点和最后一个的节点是换行符\n)

Parser将网页信息解析成为一棵节点树,Node(节点里)保存了信息。下面是一些常用的类和方法:Parser解析类方法:NodeIterator elements(); 获取节点迭代器(此方法搭配迭代器的方法可用于获取根节点,详见示例)void setEncoding(String encoding); 设置编码方式NodeIterator节点迭代器:Node n 所以 还是用回了 rich-text组件 支付宝小程序 nodes 属性只支持使用 Array 类型。 如果需要支持 HTML String,则需要自己将 HTML String转化为 nodes 数组,可使用 html-parser转换。 import HTMLParser from “@/static/js/html-parser.js” HTMLParser将解析过的信息留存为一个树的结构。Node是信息留存的数据类型基础。 请看Node的界说: public interface Node extends Cloneable; Node中包括的要领有几类:   1、对付树型结构进行遍历的函数,这些函数最轻易理解: Node g
声明:转载自http://www.cnblogs.com/loveyakamoz/archive/2011/07/27/2118937.html HTMLParser具有小巧,快速的优点,缺点是相关文档比较少(英文的也少),很多功能需要自己摸索。对于初学者还是要费一些功夫的,而一旦上手以后,会发现HTMLParser的结构设计很巧妙,非常实用,基本你的各种需求都可以满足。     这里我根据自
import org.htmlparser.Node; import org.htmlparser.NodeFilter; import org.htmlparser.Parser; import org.htmlparser.PrototypicalNodeFactory; import org.htmlpar import org.htmlparser.Node; import org.htmlparser.NodeFilter; import org.htmlparser.Parser; import org.htmlparse... NodeFilter filter = new TagNameFilter ("DIV"); NodeList nodes = parser.extractAllNodesThatMatch(filter); 过滤如div、class等tag的List 2.HasChildFilter NodeFilter innerFilter = new TagN import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import java.io.IOException; public class HTMLParser { public static void main(String[] args) throws IOException { // 使用 Jsoup 解析 HTML Document doc = Jsoup.connect("https://www.example.com").get(); // 选择所有的标题元素 Elements titles = doc.select("h1"); for (Element title : titles) { System.out.println("标题:" + title.text()); 在这段代码中,我们使用了 Jsoup 库解析 HTML,然后选择了所有的标题元素(标签为 `h1`)并输出其文本内容。 ElementUI formItemRule: [code=javascript] const itemRule = [{ pattern: /(^[1-9](\d{0,7})(\.\d{1,2})?$)|(^0(\.\d{1,2})?$)/, message: '单价应为数字,且范围为0 ~ 99999999.99' }] [/code] 辗转相除法求最大公约数 再无名字可选: 15年的,看的人懂就行了