第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

XPath中是否有“ if -then-else”語句?

XPath中是否有“ if -then-else”語句?

尚方寶劍之說 2019-12-04 11:19:39
似乎可以使用xpath中所有豐富的功能來執(zhí)行“ if”操作。但是,我的引擎一直堅持“沒有這樣的功能”,而且我在網(wǎng)上幾乎找不到任何文檔(我發(fā)現(xiàn)了一些可疑的資源,但是它們的語法沒有用)我需要從字符串的末尾刪除“:”(如果存在),所以我想這樣做:if (fn:ends-with(//div [@id='head']/text(),': '))            then (fn:substring-before(//div [@id='head']/text(),': ') )            else (//div [@id='head']/text())有什么建議嗎?
查看完整描述

3 回答

?
慕田峪9158850

TA貢獻(xiàn)1794條經(jīng)驗 獲得超7個贊

是的,在XPath 1.0中有一種方法可以做到:


concat(

  substring($ s1,1,number($ condition)*字符串長度($ s1)),

  substring($ s2,1,number(not($ condition))*字符串長度($ s2))

這依賴于兩個互斥字符串的串聯(lián),如果條件為false(0 * string-length(...)),則第一個為空,如果條件為true,則第二個為空。這被稱為“貝克爾方法”,歸因于奧利弗·貝克爾。


在您的情況下:


concat(

  子串(

    substring-before(// div [@ id ='head'] / text(),':'),

    1, 

    數(shù)(

      結(jié)尾為(// div [@ id ='head'] / text(),':')

    )

    * string-length(substring-before(// div [@ id ='head'] / text(),':'))

  ),

  子串(

    // div [@ id ='head'] / text(), 

    1, 

    編號(不(

      結(jié)尾為(// div [@ id ='head'] / text(),':')

    ))

    *字符串長度(// div [@ id ='head'] / text())

  )

雖然我會嘗試擺脫"//"以前的所有情況。


同樣,有可能//div[@id='head']返回多個節(jié)點。

請注意,使用//div[@id='head'][1]更具防御性。


查看完整回答
反對 回復(fù) 2019-12-04
?
德瑪西亞99

TA貢獻(xiàn)1770條經(jīng)驗 獲得超3個贊

根據(jù)pkarat的法律,您可以在1.0版中實現(xiàn)條件XPath。


對于您的情況,請遵循以下概念:


concat(substring-before(your-xpath[contains(.,':')],':'),your-xpath[not(contains(.,':'))])

這肯定會起作用??纯此趺催\作。給出兩個輸入


praba:

karan

對于第一個輸入:它包含的:條件為true,字符串before : 將作為輸出,比如說praba您的輸出。第二條件為假,因此沒有問題。


對于第二個輸入:它不包含,:因此條件失敗,到第二個條件時,字符串不包含,:因此條件為true ...因此karan將拋出輸出。


最后,你的輸出會praba,karan。


查看完整回答
反對 回復(fù) 2019-12-04
  • 3 回答
  • 0 關(guān)注
  • 1192 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號