Aku wis cukup suwe ing pangembangan ngarep kanggo ndeleng tren sajrone pirang-pirang taun: pangembang sing luwih enom nggarap paradigma pemrograman anyar tanpa mangerteni konteks sejarah kasebut. Iku, mesthi, sampurna dingerteni kanggo ora ngerti soko. Web minangka papan sing amba banget kanthi macem-macem katrampilan lan spesialisasi, lan kita ora ngerti apa sing ora dingerteni. Sinau ing lapangan iki minangka lelungan sing terus-terusan tinimbang sing kedadeyan sepisan lan rampung. Kasus ing titik: Ana wong ing timku takon apa bisa ngerti yen pangguna navigasi adoh saka tab tartamtu ing UI. Aku nuduhake acara JavaScript sadurunge unload. Nanging wong-wong sing wis ngatasi iki sadurunge ngerti iki bisa ditindakake amarga wis diwenehi tandha babagan data sing ora disimpen ing situs liyane, sing sadurunge mbukak minangka kasus panggunaan sing khas. Aku uga nuding pageHide lan visibilityChange acara kanggo kolega kanggo langkah apik. Kepiye carane aku ngerti babagan iki? Amarga teka ing proyek liyane, ora amarga aku sinau babagan nalika wiwitan sinau JavaScript. Kasunyatane yaiku kerangka front-end modern ngadeg ing pundhak para raksasa teknologi sing sadurunge. Dheweke nindakake praktik pangembangan abstrak, asring kanggo pengalaman pangembang sing luwih apik sing nyuda, utawa malah ngilangi, kabutuhan ngerti utawa ndemek apa sing biasane dadi konsep ngarep sing penting kanggo kabeh wong sing kudu ngerti. Coba Model Obyek CSS (CSSOM). Sampeyan bisa uga ngarepake manawa sapa wae sing kerja ing CSS lan JavaScript duwe akeh pengalaman CSSOM, nanging ora mesthi kedadeyan kasebut. Ana proyek React kanggo situs e-commerce sing dakgarap ing ngendi kita kudu mbukak stylesheet kanggo panyedhiya pembayaran sing saiki dipilih. Masalahe yaiku stylesheet dimuat ing saben kaca nalika mung dibutuhake ing kaca tartamtu. Pangembang sing ditugasake kanggo nindakake iki durung nate ngemot stylesheet kanthi dinamis. Maneh, iki bisa dingerteni nalika React ngilangi pendekatan tradisional sing bisa digayuh. CSSOM mesthine dudu barang sing dibutuhake ing pakaryan saben dinane. Nanging kamungkinan sampeyan kudu sesambungan karo iku ing sawetara titik, malah ing Kayata siji-mati. Pengalaman iki menehi inspirasi kanggo nulis artikel iki. Ana akeh fitur lan teknologi web sing ana ing alam bébas sing ora bisa didemek langsung ing karya saben dina. Mbok menawa sampeyan isih anyar kanggo pangembangan web lan mung ora ngerti amarga sampeyan wis ngalami abstraksi kerangka tartamtu sing ora mbutuhake sampeyan ngerti kanthi jero, utawa malah kabeh. Aku ngomong khusus babagan XML, sing akeh sing ngerti minangka basa kuno sing ora beda karo HTML. Aku nggawa iki amarga diskusi WHATWG anyar sing nuduhake manawa tumpukan tumpukan XML sing dikenal minangka program XSLT kudu dibusak saka browser. Iki persis kaya teknologi lawas sing wis ana pirang-pirang taun sing bisa digunakake kanggo praktis kaya kahanan CSSOM sing ana ing timku. Apa sampeyan wis nggarap XSLT sadurunge? Ayo dideleng yen kita akeh banget ing teknologi sing luwih lawas iki lan nggunakake fitur-fitur kasebut ing njaba konteks XML kanggo ngatasi masalah nyata saiki. XPath: API Pusat Teknologi XML sing paling penting sing mbok menawa paling migunani ing njaba perspektif XML lurus yaiku XPath, basa pitakon sing ngidini sampeyan nemokake simpul utawa atribut ing wit markup kanthi siji unsur root. Aku duwe tresno pribadi kanggo XSLT, nanging uga gumantung ing XPath, lan tresno pribadi kudu disisihake ing peringkat penting. Argumentasi kanggo mbusak XSLT ora nyebutake XPath, mula aku isih diidini. Iku apik amarga XPath minangka API tengah lan paling penting ing suite teknologi iki, utamane nalika nyoba golek sing bisa digunakake ing njaba panggunaan XML normal. Penting amarga, nalika pamilih CSS bisa digunakake kanggo nemokake akeh unsur ing kaca sampeyan, ora bisa nemokake kabeh. Salajengipun, pamilih CSS ora bisa digunakake kanggo nemokake unsur adhedhasar posisi saiki ing DOM. XPath bisa. Saiki, sawetara sing maca iki bisa ngerti XPath, lan sawetara uga ora. XPath minangka area teknologi sing cukup gedhe, lan aku ora bisa mulang kabeh dhasar lan uga nuduhake sampeyan bab-bab sing kudu ditindakake ing artikel siji kaya iki. Aku bener nyoba nulis artikel kasebut, nanging rata-rata publikasi Smashing Magazine ora ngluwihi 5,000 tembung. Aku wis ing luwih saka2.000 tembung nalika mung setengah dhasar. Dadi, aku bakal miwiti nindakake barang sing keren karo XPath lan menehi sawetara tautan sing bisa digunakake kanggo dhasar yen sampeyan nemokake barang iki menarik. Nggabungake XPath & CSS XPath bisa nindakake akeh perkara sing ora bisa ditindakake dening pamilih CSS nalika takon unsur. Nanging pamilih CSS uga bisa nindakake sawetara perkara sing ora bisa ditindakake XPath, yaiku unsur pitakon miturut jeneng kelas.

CSS XPath .kelasku /*[ngandhut(@class, "myClass")]

Ing conto iki, CSS pitakon unsur sing ngemot jeneng kelas .myClass. Kangge, conto XPath takon unsur sing ngemot kelas atribut karo string "myClass". Ing tembung liyane, iku milih unsur karo myClass ing sembarang atribut, kalebu unsur karo .myClass classname - uga unsur karo "myClass" ing senar, kayata .myClass2. XPath luwih jembar ing pangertèn kasebut. Dadi, ora. Aku ora menehi saran yen kita kudu mbuwang CSS lan miwiti milih kabeh unsur liwat XPath. Iku ora titik. Intine yaiku XPath bisa nindakake samubarang sing ora bisa ditindakake CSS lan isih bisa migunani banget, sanajan iku teknologi sing luwih lawas ing tumpukan browser lan bisa uga ora katon jelas. Ayo nggunakake rong teknologi kasebut bebarengan ora mung amarga kita bisa, nanging amarga kita bakal sinau babagan XPath sajrone proses kasebut, dadi alat liyane ing tumpukan sampeyan - sing sampeyan ora ngerti wis ana ing kono! Masalahe yaiku metode document.evaluate JavaScript lan macem-macem metode pamilih pitakon sing digunakake karo API CSS kanggo JavaScript ora kompatibel. Aku wis nggawe API pitakon sing cocog kanggo miwiti, sanajan diakoni, aku ora mikir babagan iki amarga wis ora ana sing ditindakake ing kene. Mangkene conto konstruktor pitakon sing bisa digunakake maneh: Waca Pen queryXPath [forked] dening Bryan Rasmussen. Aku wis nambah rong cara ing obyek document: queryCSSSelectors (sing ateges querySelectorAll) lan queryXPaths. Loro-lorone iki ngasilake obyek queryResults:

{ Tipe pitakon: simpul | senar | nomer | boolean, asil: sembarang [] // elemen html, unsur xml, string, angka, boolean, queryCSSSelectors: (query: string, mbenake: boolean) => queryResults, queryXpaths: (query: string, mbenake: boolean) => queryResults }

Fungsi queryCSSSelectors lan queryXpaths nglakokake pitakon sing sampeyan wenehake ing unsur-unsur ing larik asil, mesthine yen larik asil saka jinis simpul. Yen ora, bakal ngasilake queryResult kanthi array kosong lan jinis simpul. Yen properti mbenake disetel kanggo bener, fungsi bakal ngganti queryResults dhewe. Ing kahanan apa wae, iki ora kudu digunakake ing lingkungan produksi. Aku nindakake kanthi cara iki murni kanggo nduduhake macem-macem efek nggunakake loro query API bebarengan. Tuladha Pitakonan Aku pengin nuduhake sawetara conto pitakon XPath sing beda-beda sing nduduhake sawetara perkara sing kuat sing bisa ditindakake lan carane bisa digunakake ing panggonan pendekatan liyane. Conto pisanan yaiku //li/text(). Iki takon kabeh unsur li lan ngasilake simpul teks. Dadi, yen kita takon HTML ing ngisor iki:

  • siji
  • loro
  • telu

…iki wangsulane:

{"queryType":"xpathEvaluate","results":["siji","loro","telu"],"resultType":"string"}

Ing tembung liyane, kita entuk array ing ngisor iki: ["siji","loro", "telu"]. Biasane, sampeyan bakal takon unsur li kanggo entuk, ngowahi asil pitakon kasebut dadi array, peta array, lan ngasilake simpul teks saben unsur. Nanging kita bisa nindakake kanthi luwih ringkes karo XPath: document.queryXPaths("//li/text()").hasil.

Elinga yen cara kanggo njaluk simpul teks nggunakake teks (), sing katon kaya tandha fungsi - lan iku. Iki ngasilake simpul teks saka unsur. Ing conto kita, ana telung unsur li ing markup, saben ngemot teks ("siji", "loro", lan "telu"). Ayo goleki siji conto liyane saka pitakonan teks (). Anggap iki markup kita: Mlebu

Ayo nulis pitakon sing ngasilake nilai atribut href: document.queryXPaths("//a[text() = 'Mlebu']/@href").hasil.

Iki minangka pitakon XPath ing dokumen saiki, kaya conto pungkasan, nanging wektu iki bali atribut href saka link (unsur) sing ngemot teks "Mlebu". Sing nyata baliasil ["/login.html"]. Ringkesan Fungsi XPath Ana sawetara fungsi XPath, lan sampeyan mbokmenawa ora menowo karo wong-wong mau. Ana sawetara, aku mikir, sing kudu dingerteni, kalebu ing ngisor iki:

diwiwiti-kanggoYen teks diwiwiti kanthi conto teks tartamtu, diwiwiti-karo (@href, 'http:') bali bener yen atribut href diwiwiti karo http:. containsYen teks ngemot conto teks liyane tartamtu, ngandhut (teks (), "Smashing Magazine") bali bener yen simpul teks ngemot tembung "Smashing Magazine" ing ngendi wae. countReturns count carane akeh cocog kanggo pitakonan. Contone, count(//*[starts-with (@href, 'http:']) ngasilake count saka jumlah pranala ing simpul konteks duwe unsur karo atribut href sing ngemot teks sing diwiwiti karo http:. substringWorks kaya JavaScript substring, kajaba sampeyan pass string minangka argumen. Contone, substring("teksku", 2, 4) ngasilake "y t". substring-beforeNgasilake bagean senar sadurunge senar liyane. Contone, substing-before("teksku", " ") ngasilake "ku". Kajaba iku, substring-before("hi", "bye") ngasilake string kosong. substring-afterReturns bagean senar sawise senar liyane. Contone, substing-after("teksku", " ") ngasilake "teks". Kajaba iku, substring-after("hi", "bye") ngasilake string kosong. normalize-spaceNgasilake string argumen kanthi spasi putih sing dinormalisasi kanthi ngilangi spasi putih ing ngarep lan mburi lan ngganti urutan karakter spasi putih kanthi spasi siji. notReturns boolean bener yen argumen iku salah, digunakake palsu. trueNgasilake boolean bener. falseReturns boolean false. concatSing padha karo JavaScript concat, kajaba sampeyan ora mbukak minangka cara ing senar. Nanging, sampeyan sijine kabeh strings sing pengin concatenate. string-lengthIki ora padha karo JavaScript string-length, nanging ngasilake dawa string sing diwenehake minangka argumen. translateThis njupuk string lan ngganti argumen kapindho menyang argumen katelu. Contone, translate ("abcdef", "abc", "XYZ") ngasilake XYZdef.

Kajaba saka fungsi XPath tartamtu iki, ana sawetara fungsi liyane sing kerjane padha karo mitra JavaScript - utawa mitra ing basa pemrograman apa wae - sing bisa uga migunani, kayata lantai, langit-langit, bunder, jumlah, lan liya-liyane. Demo ing ngisor iki nggambarake saben fungsi kasebut: Deleng fungsi Pen XPath Numerical [forked] dening Bryan Rasmussen. Elinga, kaya umume fungsi manipulasi senar, akeh sing numerik njupuk input siji. Iki, mesthine, amarga mesthine digunakake kanggo pitakon, kaya ing conto XPath pungkasan: //li[floor(text()) > 250]/@val

Yen sampeyan nggunakake, kaya sing paling akeh conto, sampeyan bakal mbukak ing simpul pisanan sing cocog karo path. Ana uga sawetara fungsi konversi jinis sing sampeyan kudu nyingkiri amarga JavaScript wis duwe masalah konversi jinis dhewe. Nanging bisa uga ana wektu nalika sampeyan pengin ngowahi senar menyang nomer supaya bisa dipriksa karo sawetara nomer liyane. Fungsi sing nyetel jinis soko yaiku boolean, angka, string, lan simpul. Iki minangka jinis data XPath sing penting. Lan kaya sing sampeyan bayangake, umume fungsi kasebut bisa digunakake ing jinis data sing dudu simpul DOM. Contone, substring-after njupuk senar kaya sing wis kita bahas, nanging bisa uga senar saka atribut href. Bisa uga mung string:

const testSubstringAfter = document.queryXPaths("substring-after('hello world',' ')");

Temenan, conto iki bakal menehi maneh array asil minangka ["donya"]. Kanggo nuduhake iki ing tumindak, aku wis nggawe kaca demo nggunakake fungsi marang samubarang sing dudu simpul DOM: Waca Pen queryXPath [forked] dening Bryan Rasmussen. Sampeyan kudu nyatet aspek ngageti saka fungsi nerjemahake, yaiku yen sampeyan duwe karakter ing argumen kapindho (yaiku, dhaptar karakter sing pengin diterjemahake) lan ora ana karakter sing cocog kanggo nerjemahake, karakter kasebut bakal dibusak saka output. Dadi, iki:

translate('Halo, Jenengku Inigo Montoya, kowe mateni bapakku, siyap-siyap mati','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,','*')

…asil ing senar, kalebu spasi: ["******"]

Iki tegese huruf "a" diterjemahake menyang tanda bintang (*), nanging saben karakter liyane sing ora duwe terjemahan amarga string target wis dibusak. Spasi putih kabeh sing isih anaantarane karakter sing dijarwakake "a". Banjur maneh, pitakon iki:

translate('Halo, Jenengku Inigo Montoya, kowe mateni bapakku, siyap-siyap mati','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,','******************************************************')")

... ora duwe masalah lan ngasilake asil kaya iki:

"***** ****** ** ***** ****** *** ****** ** ****** ****** ****** "

Sampeyan bisa uga ngerteni manawa ora ana cara sing gampang ing JavaScript kanggo nindakake persis apa fungsi terjemahan XPath, sanajan kanggo akeh kasus panggunaan, replaceAll kanthi ekspresi reguler bisa ditangani. Sampeyan bisa nggunakake pendekatan padha aku wis tontonan, nanging sing suboptimal yen sampeyan pengin mung nerjemahake strings. Tur ing ngisor iki mbungkus fungsi terjemahan XPath kanggo nyedhiyakake versi JavaScript: Waca fungsi Pen translate [forked] dening Bryan Rasmussen. Ing endi sampeyan bisa nggunakake kaya iki? Coba enkripsi Caesar Cipher kanthi offset telung panggonan (contone, enkripsi top-of-the-line saka 48 B.C.):

translate ("Caesar arep nyabrang Rubicon!", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", "XYZABCDEFGHIJKLMNOPQRSTUVWxyzabcdefghijklmnopqrstuvw")

Teks input "Caesar arep nyabrang Rubicon!" asil ing "Zxbpxo fp mixkkfkd ql zolpp qeb Oryfzlk!" Kanggo menehi conto cepet liyane saka kemungkinan beda, Aku digawe fungsi logam sing njupuk input senar lan nggunakake fungsi nerjemahake bali teks, kalebu kabeh karakter sing njupuk umlauts. Waca fungsi Pen metal [forked] dening Bryan Rasmussen.

const metal = (str) => { return translate(str, "AOUaou","ÄÖÜäöü"); }

Lan, yen diwenehi teks "Motley Crue rules, rock on dudes!", ngasilake "Mötley Crüe rüles, röck ön düdes!" Temenan, siji bisa duwe kabeh jinis parodi nggunakake fungsi iki. Yen sampeyan iku, artikel TVTropes iki kudu menehi inspirasi akeh. Nggunakake CSS Kanthi XPath Elinga alesan utama kita nggunakake pamilih CSS bebarengan karo XPath: CSS cukup ngerti apa kelas, dene sing paling apik sing bisa sampeyan lakoni karo XPath yaiku mbandhingake string atribut kelas. Sing bakal bisa digunakake ing akeh kasus. Nanging yen sampeyan tau ngalami kahanan, ngomong, ana wong sing nggawe kelas sing jenenge .primaryLinks lan .primaryLinks2 lan sampeyan nggunakake XPath kanggo entuk kelas .primaryLinks, mula sampeyan bakal ngalami masalah. Anggere ora ana sing konyol kaya ngono, sampeyan bisa uga nggunakake XPath. Nanging aku sumelang kanggo nglaporake yen aku wis kerja ing papan sing ditindakake wong-wong sing ora sopan. Iki demo liyane nggunakake CSS lan XPath bebarengan. Iki nuduhake apa sing kedadeyan nalika nggunakake kode kanggo mbukak XPath ing simpul konteks sing dudu simpul dokumen. Waca Pen css lan xpath bebarengan [forked] dening Bryan Rasmussen. Pitakonan CSS yaiku .relatedarticles a, kang njupuk loro unsur ing div diutus kelas .relatedarticles. Sawise iku ana telung pitakon "ala", yaiku, pitakon sing ora nindakake apa sing dikarepake nalika mlaku nganggo unsur kasebut minangka simpul konteks. Aku bisa nerangake kenapa dheweke tumindak beda tinimbang sing sampeyan ngarepake. Telung pitakon ala sing ditakoni yaiku:

//teks (): Ngasilake kabeh teks ing dokumen kasebut. //a/text(): Ngasilake kabeh teks ing link ing dokumen. ./a/text(): Ngasilake ora ana asil.

Alesan kanggo asil kasebut yaiku nalika konteks sampeyan minangka unsur sing bali saka pitakon CSS, // nglawan kabeh dokumen. Iki kekuatan XPath; CSS ora bisa pindhah saka simpul munggah menyang leluhur lan banjur menyang sadulur saka leluhur sing, lan lumaku mudhun kanggo turunane sadulur sing. Nanging XPath bisa. Kangge, ./ takon anak saka simpul saiki, ngendi titik (.) nggantosi simpul saiki, lan garis miring maju (/) nggantosi arep sawetara simpul anak - apa iku atribut, unsur, utawa teks ditemtokake dening bagean sabanjure path. Nanging ora ana unsur sing dipilih dening query CSS, mula pitakon kasebut uga ora ngasilake apa-apa. Ana telung pitakon apik ing demo pungkasan kasebut:

.//teks(), ./teks(), normalize-spasi(./text()).

Pitakonan normalisasi-ruang nduduhake panggunaan fungsi XPath, nanging uga ndandani masalah sing kalebu ing pitakon liyane. HTML disusun kaya iki:

Ngotomatisasi Tes Fitur Kanthi Selenium WebDriver

Pitakonan ngasilake feed baris ing wiwitan lan pungkasan simpul teks,lan normalize-spasi mbusak iki. Nggunakake sembarang fungsi XPath sing ngasilake soko liyane saka boolean karo input XPath ditrapake kanggo fungsi liyane. Demo ing ngisor iki nuduhake sawetara conto: Deleng conto Pen xpath fungsi [forked] dening Bryan Rasmussen. Conto pisanan nuduhake masalah sing kudu diwaspadai. Khusus, kode ing ngisor iki:

document.queryXPaths("substring-after(//a/@href,'https://')");

…ngasilake siji string:

"www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/"

Iku ndadekake pangertèn, tengen? Fungsi kasebut ora ngasilake array nanging string tunggal utawa nomer siji. Mlaku fungsi ing ngendi wae kanthi macem-macem asil mung ngasilake asil pisanan. Asil kapindho nuduhake apa sing dikarepake:

document.queryCSSSelectors("a").queryXPaths("substring-after(./@href,'https://')");

Sing ngasilake array saka rong senar:

["www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/","www.smashingmagazine.com/2022/11/automated-test-results-improve-accessibility/"]

Fungsi XPath bisa disarang kaya fungsi ing JavaScript. Dadi, yen kita ngerti struktur URL Smashing Magazine, kita bisa nindakake ing ngisor iki (nggunakake literal cithakan dianjurake): 'terjemahake ( substring( substring-after(./@href, 'www.smashingmagazine.com/') ,9), '/','')`

Iki dadi rada rumit nganti mbutuhake komentar sing njlentrehake apa sing ditindakake: njupuk kabeh URL saka atribut href sawise www.smashingmagazine.com/, mbusak sangang karakter pisanan, banjur terjemahake garis miring maju (/) dadi apa-apa supaya bisa ngilangi garis miring sing pungkasan. Array asil:

["feature-testing-selenium-webdriver","automated-test-results-improve-accessibility"]

Kasus panggunaan XPath liyane XPath pancen bisa sumunar ing tes. Alesane ora angel dideleng, amarga XPath bisa digunakake kanggo njupuk saben unsur ing DOM, saka posisi apa wae ing DOM, dene CSS ora bisa. Sampeyan ora bisa ngetung kelas CSS sing tetep konsisten ing pirang-pirang sistem mbangun modern, nanging kanthi XPath, kita bisa nggawe pertandhingan sing luwih mantep babagan isi teks unsur, preduli saka owah-owahan struktur DOM. Ana riset babagan teknik sing ngidini sampeyan nggawe tes XPath sing tahan banting. Ora ana sing luwih elek tinimbang ngalami tes lan gagal mung amarga pamilih CSS ora bisa digunakake maneh amarga ana sing diganti jeneng utawa dibusak. XPath uga apik banget ing macem-macem ekstraksi locator. Ana luwih saka siji cara kanggo nggunakake pitakon XPath kanggo cocog karo unsur. Padha bener karo CSS. Nanging pitakon XPath bisa ngebor babagan kanthi cara sing luwih ditargetake sing mbatesi apa sing bakal dibalekake, ngidini sampeyan nemokake pertandhingan tartamtu sing bisa uga ana sawetara pertandhingan. Contone, kita bisa nggunakake XPath kanggo ngasilake unsur h2 tartamtu sing ana ing jero div sing langsung ngetutake div sadulur sing, ing siji, ngemot unsur gambar anak kanthi atribut data-testID = "pemimpin":

ora entuk judhul iki

Aja njaluk judhul iki uga

Header kanggo gambar pimpinan

Iki pitakon: document.queryXPaths(` //div[ sedulur ing ngisor iki::div[1] /img[@data-testID='pemimpin'] ] /h2/ teks() `);

Ayo demo kanggo ndeleng kepiye kabeh bisa digabung: Waca Pen Komplek H2 Query [forked] dening Bryan Rasmussen. Dadi, ya. Ana akeh kemungkinan dalan menyang unsur apa wae ing tes nggunakake XPath. XSLT 1.0 Penghapusan Aku nyatakake yen tim Chrome ngrancang mbusak dhukungan XSLT 1.0 saka browser. Sing penting amarga XSLT 1.0 nggunakake pemrograman fokus XML kanggo transformasi dokumen sing gumantung ing XPath 1.0, sing ditemokake ing umume browser. Yen kedadeyan kasebut, kita bakal kelangan komponen utama XPath. Nanging amarga kasunyatane yen XPath pancen apik banget kanggo tes nulis, aku rumangsa ora mungkin XPath sakabèhé bakal ilang kapan wae. Yen ngandika, Aku wis ngeweruhi sing wong njaluk kasengsem ing fitur nalika dijupuk. Lan iku mesthi bener ing kasus XSLT 1.0 sing ora digunakake. Ana kabeh diskusi sing kedadeyan ing Hacker News sing diisi karo argumentasi nglawan deprecation. Kiriman kasebut minangka conto sing apik kanggo nggawe kerangka blog nganggo XSLT. Sampeyanbisa maca diskusi kanggo dhewe, nanging nemu menyang carane JavaScript bisa digunakake minangka shim kanggo XLST kanggo nangani sing limo kasus. Aku uga ndeleng saran manawa browser kudu nggunakake SaxonJS, yaiku port menyang mesin Saxon XSLT, XQUERY, lan XPath JavaScript. Iki minangka ide sing menarik, utamane amarga Saxon-JS ngetrapake versi spesifikasi kasebut saiki, dene ora ana browser sing ngetrapake versi XPath utawa XSLT ngluwihi 1.0, lan ora ana sing ngetrapake XQuery. Aku tekan Norm Tovey-Walsh ing Saxonica, perusahaan ing mburi SaxonJS lan versi mesin Saxon liyane. Panjenenganipun ngandika: "Yen ana vendor browser sing kasengsem njupuk SaxonJS minangka titik wiwitan kanggo nggabungake teknologi XML modern menyang browser, kita bakal seneng ngrembug babagan iki." - Norm Tovey-Walsh

Nanging uga ditambahake: "Aku bakal kaget banget yen ana sing ngira yen njupuk SaxonJS ing wangun saiki lan nyelehake menyang browser sing ora diganti bakal dadi pendekatan sing cocog. A vendor browser, kanthi kasunyatan sing nggawe browser, bisa nyedhaki integrasi ing tingkat sing luwih jero tinimbang sing bisa 'saka njaba'. " - Norm Tovey-Walsh

Wigati dicathet yen komentar Tovey-Walsh teka kira-kira seminggu sadurunge pengumuman penghentian XSLT. Kesimpulan Aku bisa terus lan terus. Nanging muga-muga iki wis nuduhake kekuwatan XPath lan menehi akeh conto sing nuduhake cara nggunakake kanggo entuk prekara sing apik. Iki minangka conto sampurna saka teknologi lawas ing tumpukan browser sing isih akeh utilitas saiki, sanajan sampeyan ora nate ngerti manawa ana utawa ora nate nganggep. Wacan Salajengipun

"Meningkatkan Ketahanan Tes Web Otomatis nganggo Basa Alam" (ACM Digital Library) dening Maroun Ayli, Youssef Bakouny, Nader Jalloul, lan Rima Kilany Artikel iki nyedhiyakake akeh conto XPath kanggo nulis tes sing tahan banting. XPath (MDN) Iki minangka papan sing apik kanggo miwiti yen sampeyan pengin panjelasan teknis babagan cara kerja XPath. Tutorial XPath (ZVON)Aku nemokake tutorial iki minangka sing paling migunani kanggo sinau dhewe, amarga akeh conto lan panjelasan sing jelas. Alat interaktif XPather Iki ngidini sampeyan bisa langsung nganggo kode kasebut.

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free