xpath如何選擇排除某個元素

我們通常使用xpath的用處是選擇某個或者某些節(jié)點(diǎn)匪蟀,但是如果我們的業(yè)務(wù)變成“需要選擇去掉某個節(jié)點(diǎn)辕坝,然后拿到其他節(jié)點(diǎn)”纱耻,這個時候該怎么辦呢?
其實(shí)xpath中有個功能叫做not(name())可以刪除一類tag的所有節(jié)點(diǎn)砚蓬,如下所示:
等等矢门。。灰蛙。我們先得有一個html的頁面結(jié)構(gòu)祟剔。方便大家的查看。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Storm</title>
</head>
<body>
    <h1 id="h1" name="hname" class="cname">這是一個h1標(biāo)簽</h1>
    <h1 id="h2" name="hname" class="cname2">這是一2個h1標(biāo)簽</h1>
    <form class="logo">
        文本域1:<input type="text" name="first_name">
        <br>
        文本域2:<input type="text" name="last_name">
    </form>
    <form>
        密碼字段:<input type="password" name="password">
    </form>
    <form>
        單選按鈕1:
        <input type="radio" name="radio1" value="nan">male
        <input type="radio" name="radio1" value="nv">female
    </form>
    <form>
        寵物:
        <input type="checkbox" name="cw1">貓
        <input type="checkbox" name="cw">狗
        <input type="checkbox" name="cw">兔子
    </form>
</body>
</html>

下面祭出我們的xpath代碼:

html.xpath('/html/body/*[not(name()="form")]//text()')

結(jié)果如下:
['這是一個h1標(biāo)簽', '這是一2個h1標(biāo)簽']
這種方法在功能上是可以實(shí)現(xiàn)的摩梧,但是又一個問題物延,他完全刪除了整個tag,也就是說整個名為form的所有tag都被刪除了仅父,這個其實(shí)殺傷范圍過大叛薯,有時候我們并不希望這樣,因?yàn)槲覀兿胍獎h除的可能只是某幾個tag笙纤,而不是一類tag耗溜,但是其實(shí)處理方式比較簡單 我們自定義一個tag name,我們利用正則將我們打算刪除的某個<form</form>改成<connerform></connerform>,然后將not(name()="form")改為not(name()="connerform")省容,這樣就可以了抖拴,既然我們都用正則來替換了,為什么不直接來刪除呢腥椒?簡直多此一舉啊阿宅,那有沒有原生的方法供我們使用呢?答案是有的笼蛛,我們需要用到的寫法如下:

html.xpath("http://h1[@name='hname' and not(contains(@class,'cname2'))]//text()")

結(jié)果如下:
['這是一個h1標(biāo)簽']
整個方法其實(shí)是這樣的洒放,在中括號(我們知道中括號是用來寫某個標(biāo)簽的屬性的,我們在這里做文章滨砍,使用not字段 not contains就好了)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末往湿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子惋戏,更是在濱河造成了極大的恐慌领追,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件日川,死亡現(xiàn)場離奇詭異蔓腐,居然都是意外死亡矩乐,警方通過查閱死者的電腦和手機(jī)龄句,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進(jìn)店門回论,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人分歇,你說我怎么就攤上這事傀蓉。” “怎么了职抡?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵葬燎,是天一觀的道長。 經(jīng)常有香客問我缚甩,道長谱净,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任擅威,我火速辦了婚禮壕探,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘郊丛。我一直安慰自己李请,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布厉熟。 她就那樣靜靜地躺著导盅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪揍瑟。 梳的紋絲不亂的頭發(fā)上白翻,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天,我揣著相機(jī)與錄音月培,去河邊找鬼嘁字。 笑死,一個胖子當(dāng)著我的面吹牛杉畜,可吹牛的內(nèi)容都是我干的纪蜒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼此叠,長吁一口氣:“原來是場噩夢啊……” “哼纯续!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起灭袁,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤猬错,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后茸歧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體倦炒,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年软瞎,在試婚紗的時候發(fā)現(xiàn)自己被綠了逢唤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拉讯。...
    茶點(diǎn)故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖鳖藕,靈堂內(nèi)的尸體忽然破棺而出魔慷,到底是詐尸還是另有隱情,我是刑警寧澤著恩,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布院尔,位于F島的核電站,受9級特大地震影響喉誊,放射性物質(zhì)發(fā)生泄漏邀摆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一伍茄、第九天 我趴在偏房一處隱蔽的房頂上張望隧熙。 院中可真熱鬧,春花似錦幻林、人聲如沸贞盯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽躏敢。三九已至,卻和暖如春整葡,著一層夾襖步出監(jiān)牢的瞬間件余,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工遭居, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留啼器,地道東北人。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓俱萍,卻偏偏與公主長得像端壳,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子枪蘑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 正則表達(dá)式寫起來費(fèi)勁又出錯率高损谦,代替方法之一是BeautifulSoup(另一種是使用 Xpath 神器,后續(xù)再學(xué)...
    正在輸入昵稱閱讀 1,250評論 0 4
  • feisky云計(jì)算岳颇、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 3,866評論 0 5
  • 幾千年以來照捡,位于無盡之海中央的伽古米索亞大陸不斷遭到神的懲罰,然后又不斷犯著必將遭到懲罰的錯誤话侧±蹙縱使有短暫的平靜,...
    書木木閱讀 459評論 1 1
  • 最近腦子里一直在想醫(yī)療店鋪的事情瞻鹏,總是幻想著卡嚕貓店鋪一旦有好轉(zhuǎn) 悲立,我可能就會有錢來操作這個店鋪赢赊,其實(shí)這個想法一開...
    喬喬木閱讀 258評論 0 0
  • 1.解決圖片溢出的問題 因?yàn)槲覀儾荒苤烂繌垐D片的大小,可能會溢出容器级历,只需要設(shè)置一下img的css樣式即可解決這...
    JamesSawyer閱讀 701評論 0 0