日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

java正则表达式去除xml标签之间的空格_HTML解析器——htmlparser2使用详解,换个姿势解析html和xml

發布時間:2024/1/23 HTML 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java正则表达式去除xml标签之间的空格_HTML解析器——htmlparser2使用详解,换个姿势解析html和xml 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上一篇文章我們介紹了一個html/xml解析器——htmlparser,這篇文章我們介紹另外一個解析模塊htmlparser2,后者是對前者的重構,同時對前者的API做了部分兼容。

用法簡介

安裝

const { Parser } = require('htmlparser2');const parser = new Parser(handler, options);parser.parseComplete('html/xml內容');

寫法

const { Parser } = require('htmlparser2');const parser = new Parser(handler, options);parser.parseComplete('html/xml內容');

htmlparser2提供了一個解析器——Parser,初始化它至少需要一個handler,options是可選的。

handler是一個對象,在這個對象上可以設置很多的鉤子函數,Parser解析時會在每個階段運行對應的鉤子函數。

以下是可以設置的所有的鉤子函數,

onopentag( name, attributes)onopentagname( name)onattribute( name, value)ontext( text)onclosetag( name)onprocessinginstruction( name, data)oncomment( data)oncommentend()oncdatastart()oncdataend()onerror( error)onreset()onend()

htmlparser模塊是通過正則表達式來解析html內容的,而htmlparser2則不同,它會按順序讀取html的每個字符,并且推測后面字符是標簽名、屬性還是其他的類型,所以htmlparser2在解析完每一個標簽后都會運行相應的鉤子函數。

先來看一下例子,

圖1

圖1中設置了所有的鉤子函數以便來說明每個鉤子函數的作用,運行一下,

圖2

對照圖1和圖2就能看出來每個鉤子函數的運行時機,這其中有以下幾個鉤子函數需要注意一下。

  • oncdatastart和oncdataend會在解析標簽時觸發,但是觸發的前提是選項設置了recognizeCDATA=true或者xmlMode=true;
  • onprocessinginstruction會在解析或者<?xxyy>這樣的標簽時觸發,xx和yy中間可以有分隔符(斜杠或者空格),分隔符前面的字符串就是鉤子函數中的name的值;
  • 運行parseComplete方法會執行reset鉤子函數,如果僅僅執行parser的write或者end方法并不會執行reset方法。

除了自定義handler以外,htmlparser2還提供了幾個handler,比如DomHandler,用法如下:

圖3

運行一下,我們看看結果,

圖4

如果4所示,DomHandler處理的結果是以數組的形式輸出的,在每個單元數據中還可以拿到上一個、下一個以及父節點的數據。

htmlparser2還可以通過操作流Stream解析內容,寫法如下:

圖5

總結

這篇文章和上一篇是姊妹篇,都是介紹解析html/xml內容的模塊,通過對比,我們發現htmlparser2模塊功能更強大一些,也更靈活一些,同時也兼容htmlparser模塊的一些接口。雖然兩者功能類似,但是這給了我們更多的選擇性。

喜歡我的文章就關注我吧,有問題可以發表評論,我們一起學習,共同成長!

總結

以上是生活随笔為你收集整理的java正则表达式去除xml标签之间的空格_HTML解析器——htmlparser2使用详解,换个姿势解析html和xml的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。