ኣብ ዝሓለፈ ዓመታት ኣብ ቅድሚት ምዕባለ ነዊሕ ጸኒሐ’የ፡ ኣብ ዝሓለፈ ዓመታት ሓደ ኣንፈት ክርኢ’የ፡ መንእሰያት ዲቨሎፐራት ታሪኻዊ ኵነታት ፕሮግራሚንግ ከይተረድኡ ብሓድሽ ፓራዳይም ፕሮግራሚንግ ይሰርሑ። ብርግጽ ገለ ነገር ዘይምፍላጥ ፍጹም ርዱእ እዩ። መርበብ ሓበሬታ ዝተፈላለየ ስብስብ ክእለትን ፍሉይ ሞያን ዘለዎ ኣዝዩ ዓቢ ቦታ’ዩ፣ ኩሉ ግዜ ድማ ዘይንፈልጦ ኣይንፈልጥን ኢና። ኣብዚ ዓውዲ ምምሃር ሓንሳብ ዝፍጸምን ዝውዳእን ነገር ዘይኮነስ ቀጻሊ ጉዕዞ እዩ። ንኣብነት፡ ሓደ ኣብ ጋንታይ ዝነበረ ሰብ፡ ተጠቀምቲ ኣብ UI ካብ ሓደ ፍሉይ ትብ ርሒቖም ይኸዱ እንተኾይኖም ምፍላጥ ይከኣል ድዩ ኢሉ ሓቲቱኒ። JavaScript’s beforeunload ዝበሃል ፍጻመ ኣመልኪተዮ። እቶም ቅድሚ ሕጂ ነዚ ዝገጠሙ ግን እዚ ዝከኣል ምዃኑ ይፈልጡ እዮም ምኽንያቱ ኣብ ካልኦት መርበባት ሓበሬታ ብዛዕባ ዘይተዓቀበ ዳታ ብዝምልከት መጠንቀቕታታት ስለዝተሃርሙ፣ ነዚ ድማ beforeunload ልሙድ ኣጠቓቕማ እዩ። ብተወሳኺ ንጽቡቕ መለክዒ ንመሳርሕተይ pageHideን visibilityChangeን ዝበሃሉ ፍጻመታት ኣመልኪተዮ። ብዛዕባ እዚ ብኸመይ ፈሊጠ፧ ኣብ ካልእ ፕሮጀክት ስለ ዝመጸ እምበር፡ ኣብ መጀመርታ ጃቫስክሪፕት ክመሃር ከለኹ ብዛዕባኡ ስለ ዘጽናዕኩ ኣይኮነን። እቲ ሓቂ ግን ዘመናዊ ናይ ቅድሚት ፍሬምዎርክስ ኣብ መንኵብ ናይቶም ቅድሚኦም ዝነበሩ ዓበይቲ ናይ ቴክኖሎጂ ትካላት ደው ኢሎም ምህላዎም እዩ። ንሳቶም ንልምዓት ልምድታት ኣብስትራክት እዮም፣ መብዛሕትኡ ግዜ ንዝሓሸ ናይ ዲቨሎፐር ተመኩሮ ዝቕንስ፣ ወይ’ውን ዘወግድ፣ ነቲ ብባህሊ ኣገደስቲ ናይ ቅድመ-መወዳእታ ኣምር ዝነበሩ ምናልባት ኩሉ ሰብ ክፈልጦም ዝግባእ ምፍላጥ ወይ ምትንካፍ ኣድላይነት። ን CSS Object Model (CSSOM) ንርአ። ዝኾነ ኣብ CSSን JavaScriptን ዝሰርሕ ሰብ ብዙሕ ናይ ኢድ CSSOM ተመኩሮ ክህልዎ’ዩ ኢልካ ትጽበ ትኸውን፡ ግን ኩሉ ግዜ ከምኡ ኣይክኸውንን’ዩ። ንሓደ ዝሰርሓሉ ዝነበርኩ ናይ ኢ-ኮሜርስ ሳይት ሪኣክት ፕሮጀክት ነይሩ፡ ኣብኡ ድማ ነቲ ሕጂ ዝተመርጸ ወሃቢ ክፍሊት ስታይልሺት ክንጽዕን የድልየና። እቲ ጸገም እቲ ቅዲ ጽሑፍ ኣብ ነፍሲ ወከፍ ገጽ ይጽዓን ስለ ዝነበረ ኣብ ሓደ ፍሉይ ገጽ ጥራይ ብሓቂ ኣብ ዘድልየሉ እዋን እዩ። እቲ ነዚ ክኸውን ሓላፍነት ዝተዋህቦ ዲቨሎፐር፡ ብዳይናሚክ ቅዲ ጽሑፍ ጽዒኑ ኣይፈልጥን። ሕጂ’ውን ሪኣክት ነቲ ክትበጽሖ እትኽእል ባህላዊ ኣገባብ ኣብስትራክት ክገብሮ ከሎ እዚ ፍጹም ርዱእ እዩ። CSSOM ኣብ መዓልታዊ ስራሕካ ዘድልየካ ነገር ክኸውን ኣይክእልን እዩ። ግን ኣብ ሓደ እዋን ዋላ ኣብ ሓደ ግዜ ዝግበር ኣጋጣሚ ምስኡ ክትራኸብ ከድልየካ ምዃኑ ኣይተርፍን። እዚ ተመኩሮታት እዚ ነዚ ጽሑፍ ንኽጽሕፍ ኣነቓቒሑኒ። ኣብ በረኻ ብዙሓት ህሉዋት ናይ መርበብ ሓበሬታ ባህርያትን ቴክኖሎጂታትን ኣለዉ፡ ኣብ መዓልታዊ ስራሕካ ብቐጥታ ፈጺምካ ዘይትትንክፎም ትኽእል ኢኻ። ምናልባት ኣብ ምምዕባል መርበብ ሓበሬታ ብመጠኑ ሓድሽ ስለ ዝኾንካ፡ ኣብ ርጡብነት ናይ ሓደ ፍሉይ ማዕቀፍ ብዕምቆት ክትፈልጦ ዘየድልየካ፡ ወይ’ውን ፈጺምካ ክትፈልጦ ስለዘይሓትት ጥራይ ዘይትፈልጦም ትኸውን። ብፍሉይ ብዛዕባ XML’የ ዝዛረብ ዘለኹ፣ ብዙሓት ካባና ንፈልጦ ካብ HTML ፍጹም ዘይፍለ ጥንታዊ ቋንቋ’ዩ። ነዚ ዘምጽኦ ዘለኹ፡ ኣብ ቀረባ እዋን ኣብ WHATWG ዝተገብረ ዘተ፡ ርኡይ ክፋል ናይቲ ብXSLT programming ዝፍለጥ XML stack ካብ መርበብ ሓበሬታታት ክእለ ከምዘለዎ ዝሕብር’ዩ። እዚ ልክዕ ከምቲ ንዓመታት ዝነበረና ዝኣረገን ዝጸንሐን ቴክኖሎጂ’ዩ፡ ከም’ቲ ጋንታይ ዝነበረትሉ ኩነታት CSSOM ዝኣመሰለ ግብራዊ ነገር ክውዕል ዝኽእል። ቅድሚ ሕጂ ምስ XSLT ሰሪሕኩም ዲኹም? ኣብዚ ዝኣረገ ቴክኖሎጂ ብብዝሒ ተጸጊዕና ካብ ጽሑፍ XML ወጻኢ ንዘለዎ ባህርያቱ ተጠቒምና ሎሚ ኣብ ሓቀኛ ዓለም ንዘጋጥሙ ጸገማት ንፈትሖ እንተኾይንና ንርአ። XPath: እቲ ማእከላይ ኤፒኣይ እቲ ኣገዳሲ ቴክኖሎጂ ኤክስኤምኤል ምናልባት ካብ ትኽ ዝበለ ኣረኣእያ ኤክስኤምኤል ወጻኢ ዝያዳ ጠቓሚ ዝኾነ ኤክስፓት ዝበሃል ቋንቋ ሕቶ ኮይኑ፡ ኣብ ሓደ ሱር ባእታ ዘለዎ ዝኾነ መስመር ወይ ባህሪ ኣብ ኦም ማርካፕ ክትረክብ ዘኽእለካ ቋንቋ እዩ። ኣነ ንXSLT ውልቃዊ ፍቕሪ ኣለኒ፡ እዚ ግን ኣብ XPath እውን ይምርኮስ፡ ውልቃዊ ፍቕሪ ድማ ኣብ ደረጃ ኣገዳስነት ንጎኒ ክተርፍ ኣለዎ። XSLT ንምእላይ ዝቐርብ ስነ-ሞጎት ብዛዕባ XPath ዝኾነ ምጥቃስ ኣይገብርን እዩ፣ ስለዚ ሕጂ እውን ይፍቀድ እዩ ዝብል ግምት ኣለኒ። እዚ ጽቡቕ’ዩ ምኽንያቱ XPath ኣብዚ ስብስብ ቴክኖሎጂታት ማእከላይን ኣገዳስን ኤፒኣይ’ዩ፣ ብፍላይ ካብ ንቡር ኣጠቓቕማ ኤክስኤምኤል ወጻኢ ክትጥቀመሉ እትኽእል ነገር ክትረክብ ኣብ እትፍትነሉ እዋን። ኣገዳሲ እዩ ምኽንያቱ፡ CSS መምረጺታት ንመብዛሕትኦም ኣብ ገጽካ ዘለዉ ባእታታት ንምርካብ ክጥቀሙ እንከለዉ፡ ንኹሎም ግን ክረኽብዎም ኣይክእሉን እዮም። ካብዚ ሓሊፉ CSS selectors ንሓደ ባእታ ኣብቲ DOM ዘለዎ ህሉው ቦታ መሰረት ብምግባር ንምርካብ ክጥቀሙ ኣይክእሉን። XPath ይኽእል እዩ። ሕጂ፡ ገለ ካባኻትኩም ነዚ ዘንብቡ ዘለኹም XPath ትፈልጡ ትኾኑ፡ ገሊኦም ድማ ዘይትፈልጡ ትኾኑ። XPath ኣዝዩ ዓቢ ዓውዲ ቴክኖሎጂ’ዩ፣ ብሓቂ ድማ ኩሉ መሰረታዊ ነገራት ክምህርን ከምኡ’ውን ኣብ ሓደ ጽሑፍ ከምዚ ዝኣመሰለ ዝሑላት ነገራት ክትገብሮም ዘለካ ከርእየካን ኣይክእልን’የ። ብሓቂ ነታ ጽሕፍቲ ክጽሕፋ ፈቲነ’የ፡ እቲ ማእከላይ ሕትመት ስማሺንግ መጽሔት ግን ልዕሊ 5000 ቃላት ኣይከይድን’ዩ። ድሮ ኣብ ልዕሊ...2000 ቃላት ኣብ ፍርቂ መሰረታዊ ነገራት ጥራይ እናሃለወ። ስለዚ፡ ብ XPath ዝሑል ነገራት ክጅምር’የ፡ እዚ ነገር’ዚ መሳጢ ኮይኑ እንተረኺብኩም ድማ ንመሰረታዊ ነገራት ክትጥቀሙሉ እትኽእሉ ገለ ሊንክታት ክህበኩም’የ። XPath & CSS ምውህሃድ XPath ብዙሕ ነገራት ክገብር ይኽእል’ዩ፡ CSS selectors ባእታታት ክሓቱ ከለዉ ዘይክእልዎ። ግን CSS selectors XPath ዘይክእል ውሑዳት ነገራት’ውን ክገብሩ ይኽእሉ’ዮም፡ ማለት ንባእታታት ብስም ክፍሊ ምሕታት።
ሲኤስኤስ XPath .myClass ዝብል ጽሑፍ ኣሎ። /*[contains(@ክላስ, "ክፍልይ")]
ኣብዚ ኣብነት፡ CSS .myClass classname ዝሓዙ ባእታታት ይሓትት። እዚ ከምዚ ኢሉ እንከሎ፡ እቲ ናይ XPath ኣብነት፡ “myClass” ዝብል ሕብረ-ቁጽሪ ዘለዎ፡ ናይ ባህሪ ክፍሊ ዝሓዙ ባእታታት ይሓትት። ብኻልእ ኣዘራርባ፡ ኣብ ዝኾነ ባህሪ myClass ዘለዎም ባእታታት ይመርጽ፡ እንተላይ .myClass classname ዘለዎም ባእታታት — ከምኡ’ውን ኣብቲ ሕብረ-ቁጽሪ “myClass” ዘለዎም ባእታታት፡ ከም .myClass2። XPath በዚ መንጽር ዝሰፍሐ እዩ። ስለዚ፡ ኣይፋልን። CSS ደርብይና ብXPath ኣቢልና ኩሎም ባእታታት ክንመርጽ ክንጅምር ይግባእ’የ ዝብል ሓሳብ ኣይኮንኩን። እቲ ቁምነገር ከምኡ ኣይኮነን። እቲ ቁምነገር XPath ዋላ እኳ ኣብቲ ናይ መርበብ ሓበሬታ ስታክ ዝኣረገ ቴክኖሎጂ እንተኾነን ብመጀመርታ ርእይቶ ርኡይ ዘይክመስልን እንተኾነ፡ CSS ዘይክእልን ሕጂ ውን ኣዝዩ ጠቓሚ ክኸውን ዝኽእልን ነገራት ክገብር ይኽእል እዩ። ንኽልቲኡ ቴክኖሎጂታት ብሓባር ንጠቐመሎም ስለ እንኽእል ጥራይ ዘይኮነስ፡ ኣብ መስርሕ ብዛዕባ XPath ገለ ክንመሃር ኢና፡ ኣብ ስታክካ ካልእ መሳርሒ ክንገብሮ — ምናልባት ዘይትፈልጦ ኩሉ ግዜ ኣብኡ ከም ዝነበረ! እቲ ጸገም JavaScript’s document.evaluate methodን ምስ CSS APIs ንጃቫስክሪፕት እንጥቀመሎም ዝተፈላለዩ query selector methodsን ዘይቃደዉ ምዃኖም እዩ። ንኽንጅምሮ ዝሰማማዕ ናይ ምሕታት ኤፒኣይ ሰሪሐ’የ፣ ዋላ’ኳ ምእማን ይከኣል እንተኾነ፣ ካብዚ ኣብዚ እንገብሮ ዘለና ምፍንጫል ስለዝኾነ ብዙሕ ሓሳብ ከምዘየእተኹሉ። ዳግማይ ክጥቀመሉ ዝኽእል ናይ ሕቶ ሃናጺ ብመጠኑ ቀሊል ናይ ስራሕ ኣብነት እንሆ፤ Pen queryXPath [forked] ብብራያን ራስሙሰን ርአ። ኣብ’ቲ ናይ ሰነድ ነገር ክልተ ሜላታት ወሲኸ ኣለኹ፡ queryCSSSelectors (ብመሰረቱ querySelectorAll ዝኾነ) ከምኡ’ውን queryXPaths። ክልቲኦም እዚኦም queryResults ዝበሃል ነገር ይመልሱ፤
{ queryType: መስመራት | ሕብረ ቃላት | ቁጽሪ | ቡልያን፣ . ውጽኢት: ዝኾነ[] // html ባእታታት, xml ባእታታት, ሕብረ ቃላት, ቁጽርታት, ቡልያን, queryCSSSelectors: (ሕቶ: ሕብረ-ቁጽሪ, ምእራም: ቡልያን) => queryResults, queryXpaths: (ሕቶ: ሕብረ-ቁጽሪ, ምእራም: ቡልያን) => queryResults }
እቶም queryCSSSelectorsን queryXpathsን ተግባራት ነቲ እትህቦም ሕቶ ኣብ ልዕሊ እቶም ኣብቲ ውጽኢት ስርርዕ ዘለዉ ባእታታት የካይዱ፣ እቲ ውጽኢት ስርርዕ ናይ ዓይነት መስመራት ክሳብ ዝኾነ፣ ብርግጽ። እንተዘይኮይኑ ባዶ ስርዓትን ዓይነት ኖድስን ዘለዎ queryResult ክመልስ እዩ። እቲ ናይ ምምሕያሽ ንብረት ናብ ሓቂ እንተተቐሚጡ፡ እቶም ተግባራት ናይ ገዛእ ርእሶም queryResults ክቕይሩ እዮም። እዚ ኣብ ዝኾነ ይኹን ኩነታት ኣብ ናይ ምፍራይ ሃዋህው ክውዕል የብሉን። በዚ መንገዲ እዚ ዝገብሮ ዘለኹ፡ ነቶም ክልተ ናይ ሕቶ ኤፒኣይ ብሓባር ምጥቃም ዘስዕቦ ዝተፈላለየ ውጽኢት ንምግላጽ ጥራይ እየ። ኣብነት ሕቶታት ገለ ካብቲ ክገብርዎ ዝኽእሉ ሓያላት ነገራትን ኣብ ክንዲ ካልእ ኣገባባት ብኸመይ ክጥቀሙሉ ከም ዝኽእሉን ዘርእዩ ውሑዳት ኣብነታት ዝተፈላለዩ ናይ XPath ሕቶታት ከርኢ እደሊ። እቲ ቀዳማይ ኣብነት //li/text() እዩ። እዚ ንኹሎም li ባእታታት ይሓትት እሞ ናይ ጽሑፍ መስመራቶም ይመልስ። ስለዚ፡ ነዚ ዝስዕብ HTML እንተንሓትት፤
- ዝብል ጽሑፍ ኣሎ።
- ሓደ
- ክልተ
- ሰለስተ
...እዚ እዩ ዝምለስ፤
{"queryType":"xpathEvaluate","ውጽኢት":["ሓደ","ክልተ","ሰለስተ"],"resultType":"string"}
ብኻልእ ኣዘራርባ፡ እዚ ዝስዕብ ስርርዕ ንረክብ፡ ["ሓደ","ክልተ","ሰለስተ"]። ንቡር ኮይኑ፡ ነቶም li ባእታታት ነዚ ንምርካብ ምሓተትካዮም፡ ውጽኢት ናይቲ ሕቶ ናብ ስርርዕ ምቐየርካዮ፡ ነቲ ስርርዕ ኣብ ካርታ ምሃበካ፡ ናይ ነፍሲ ወከፍ ባእታ ድማ ናይ ጽሑፍ መስመር ምመለስካ። ግን ብXPath ብዝያዳ ብሕጽር ዝበለ ክንገብሮ ንኽእል ኢና፤ document.queryXPaths("//li/text()").ውጽኢት።
ኣስተውዕል፡ እቲ ናይ ጽሑፍ መስመር ንምርካብ ዝሕግዝ መንገዲ text() ምጥቃም እዩ፡ እዚ ድማ ናይ ፋንክሽን ፊርማ ይመስል — ከምኡ ድማ እዩ። ናይ ሓደ ባእታ ናይ ጽሑፍ መስመር ይመልስ። ኣብዚ ኣብነትና፡ ኣብቲ ማርካፕ ሰለስተ li ባእታታት ኣለዉ፡ ነፍሲ ወከፎም ጽሑፍ ("ሓደ"፡ "ክልተ"፡ "ሰለስተ") ዝሓዙ እዮም።
ሓደ ተወሳኺ ኣብነት ናይ text() ሕቶ ንርአ። እዚ ናትና ማርካፕ እዩ ንበል፤
ን href attribute value ዝመልስ ሕቶ ንጽሓፍ፤ document.queryXPaths("//a[text() = 'ምእታው']/@href").ውጽኢት።
እዚ ኣብቲ ሕጂ ዘሎ ሰነድ ናይ XPath ሕቶ እዩ፣ ልክዕ ከምቲ ናይ መወዳእታ ኣብነት፣ ኣብዚ ግዜ’ዚ ግን href ባህሪ ናይ ሓደ “Sign In” ዝብል ጽሑፍ ዝሓዘ ሊንክ (ሓደ ባእታ) ንመልስ። እቲ ጭቡጥ ተመሊሱውጽኢቱ ድማ ["/login.html"] እዩ። ሓፈሻዊ ትሕዝቶ ተግባራት XPath ብርክት ዝበሉ ናይ XPath ተግባራት ኣለዉ፡ ምናልባት’ውን ዘይትፈልጦም ትኾኑ። ሓያሎ ክትፈልጦም ዝግባእ ይመስለኒ፡ እዞም ዝስዕቡ ሓዊስካ፤
starts-withሓደ ጽሑፍ ብፍሉይ ካልእ ጽሑፍ ኣብነት እንተጀሚሩ፡ starts-with(@href, 'http:') ሓደ href ባህሪ ብ http: እንተጀሚሩ ሓቂ ይመልስ። containsሓደ ጽሑፍ ፍሉይ ካልእ ኣብነት ጽሑፍ ዝሓዘ እንተኾይኑ፡ contains(text(), "Smashing Magazine") ሓደ ጽሑፍ መስመር ኣብ ዝኾነ ቦታ “Smashing Magazine” ዝብሉ ቃላት እንተሃልይዎ ሓቂ ይመልስ። countንሓደ ሕቶ ክንደይ ምትእስሳር ከምዘሎ ዝሕብር ቁጽሪ ይመልስ። ንኣብነት count(//*[starts-with(@href, 'http:']) ክንደይ መላግቦታት ኣብቲ ዓውደ-ጽሑፍ መስመር ብ http: ዝጅምር ጽሑፍ ዝሓዘ href ባህሪ ዘለዎም ባእታታት ከምዘለዎም ዝሕብር ቁጽሪ ይመልስ። substringከም ጃቫስክሪፕት ንኡስ ሕብረ ቃላት ይሰርሕ፣ ብዘይካ ነቲ ሕብረ ቃላት ከም ሞጎተ ምሕላፍካ። ንኣብነት substring("ጽሑፈይ", 2, 4) "y t" ይመልስ። substring-beforeክፋል ናይ ሓደ ሕብረ-ቁጽሪ ቅድሚ ካልእ ሕብረ-ቁጽሪ ይመልስ። ንኣብነት substing-before("ጽሑፈይ", " ") "ናተይ" ይመልስ። ብተመሳሳሊ substring-before("hi","bye") ባዶ ሕብረ ቃላት ይመልስ። substring-afterክፋል ናይ ሓደ ሕብረ-ቁጽሪ ድሕሪ ካልእ ሕብረ-ቁጽሪ ይመልስ። ንኣብነት substing-after("ጽሑፈይ", " ") "ጽሑፍ" ይመልስ። ብተመሳሳሊ substring-after("hi","bye")ባዶ ሕብረ-ቁጽሪ ይመልስ። normalize-space ነቲ ናይ ስነ-ሞጎት ሕብረ-ቁጽሪ ምስ ጻዕዳ ቦታ ንቡር ብምምላስ መሪሕን ድሕሪትን ጻዕዳ ቦታ ብምግፋፍን ቅደም ተኸተል ናይ ጻዕዳ ቦታ ፊደላት ብሓደ ነጥቢ ብምትካእን ይመልሶ። notእቲ ሞጎተ ሓሶት እንተኾይኑ ቡልያን ሓቂ ይመልስ፣ እንተዘይኮይኑ ሓሶት እዩ። trueቡልያን ሓቂ ይመልስ። falseቡልያን ሓሶት ይመልስ። concatከም ጃቫስክሪፕት concat ተመሳሳሊ ነገር እዩ፣ ብዘይካ ከም ሜላ ኣብ ሕብረ ቃላት ዘይምስራሕ። ኣብ ክንድኡስ፡ ንዅሎም እቶም ክትተሓሓዞም እትደሊ ሕብረ-ቃላት ኢኻ እተእትዎም። string-lengthእዚ ምስ ጃቫስክሪፕት string-length ሓደ ኣይኮነን፣ እንታይ ደኣ ንውሓት ናይቲ ከም ሞጎተ ዝተዋህቦ ሕብረ ቃላት ይመልስ። translateእዚ ሓደ ሕብረ ቃላት ወሲዱ ነቲ ካልኣይ ምጉት ናብ ሳልሳይ ምጉት ይቕይሮ። ንኣብነት translate("abcdef", "abc", "XYZ") ንXYZdef ይወጽእ።
ካብዞም ፍሉያት ናይ XPath ተግባራት ወጻኢ፡ ልክዕ ከምቶም ናይ ጃቫስክሪፕት መዛኑኦም ዝሰርሑ ካልኦት ብርክት ዝበሉ ተግባራት ኣለዉ — ወይ ድማ ብመሰረቱ ኣብ ዝኾነ ቋንቋ ፕሮግራሚንግ ዝርከቡ መዛኑኦም — ምናልባት’ውን ጠቐምቲ ኮይኖም ክትረኽቦም ትኽእል ኢኻ፡ ከም መሬት፡ ናሕሲ፡ ክቢ፡ ድምር ወዘተ። እዚ ዝስዕብ ዲሞ ንነፍሲ ወከፍ ካብዞም ተግባራት ዘርኢ እዩ፤ Pen XPath Numerical functions [forked] ብብራያን ራስሙሰን ርአ። ኣስተውዕል፡ ከም መብዛሕትኦም ናይ ሕብረ-ቁጽሪ ምትላል ተግባራት፡ ብዙሓት ካብቶም ቁጽራዊ ሓደ ምእታው ይወስዱ። እዚ ብርግጽ ከምቲ ኣብ ዝሓለፈ ኣብነት XPath ንሕቶ ክውዕሉ ስለዝግባእ፤ //li[floor(ጽሑፍ()) > 250]/@val
ከምቲ መብዛሕትኦም ኣብነታት ዝገብርዎ እንተተጠቒምካሎም፡ ኣብ መወዳእታ ኣብቲ ምስቲ መንገዲ ዝሰማማዕ ቀዳማይ መስመር ከተካይዶ ኢኻ። ገለ ናይ ዓይነት ምቕያር ተግባራት እውን ኣለዉ ምናልባት ክትውግዶም ዘለካ ምኽንያቱ ጃቫስክሪፕት ድሮ ናይ ገዛእ ርእሱ ናይ ዓይነት ምቕያር ጸገማት ኣለዎ። ግን ንሓደ ሕብረ-ቁጽሪ ምስ ካልእ ቁጽሪ ንምፍታሽ ናብ ቁጽሪ ክትቅይሮ እትደሊ እዋናት ክህሉ ይኽእል እዩ። ዓይነት ናይ ሓደ ነገር ዘቐምጡ ተግባራት ቡልያን፣ ቁጽሪ፣ ሕብረ-ቁጽሪን መስመርን እዮም። እዚኦም እቶም ኣገደስቲ ናይ XPath datatypes እዮም። ከምኡ’ውን ከምቲ ትሓስብዎ፡ መብዛሕትኦም እዞም ተግባራት ኣብቶም DOM nodes ዘይኮኑ ዳታታይፕታት ክጥቀሙ ይኽእሉ። ንኣብነት፡ substring-after ከምቲ ኣቐዲምና ዝሸፈንናዮ ሕብረ-ቁጽሪ ይወስድ፡ ግን ካብ href ባህሪ ዝመጽእ ሕብረ-ቁጽሪ ክኸውን ይኽእል’ዩ። ስርርዕ ጥራይ ክኸውን እውን ይኽእል እዩ፤
const testSubstringAfter = document.queryXPaths("ንኡስ-ድሕሪ('ሰላም ዓለም',' ')");
እዚ ኣብነት እዚ ነቲ ውጽኢት ስርርዕ ከም ["ዓለም"] ክመልሰና ምዃኑ ርዱእ እዩ። ነዚ ብተግባር ንምርኣይ፡ ኣንጻር DOM nodes ዘይኮኑ ነገራት ፋንክሽን ብምጥቃም ናይ ዲሞ ገጽ ሰሪሐ ኣለኹ፤ Pen queryXPath [forked] ብብራያን ራስሙሰን ርአ። እቲ ዘገርም መዳይ ናይቲ ትርጉም ፋንክሽን ከተስተብህል ይግባእ፣ እዚ ድማ ኣብቲ ካልኣይ ሞጎተ (i.e.፣ ክትርጎም እትደሊ ዝርዝር ፊደላት) ሓደ ፊደል እንተሃልዩካን ክትትርጉመሉ እትደሊ ዝሰማማዕ ፊደል እንተዘይሃልዩካን፣ እቲ ፊደል ካብቲ ውጽኢት ይእለ። በዚ ድማ እዚ፤
translate('ሰላም፡ ስመይ ኢኒጎ ሞንቶያ፡ ንኣቦይ ቀቲልካዮ፡ ክትመውት ተዳሎ','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,','*')
...ውጽኢት ናይቲ ሕብረ-ቁጽሪ፡ ነጥብታት ሓዊሱ፤ [" * * ** "]
እዚ ማለት ፊደል “ሀ” ናብ ኮኾብ (*) ይትርጎም ኣሎ፣ ግን ኩሉ ካልእ ፊደል እቲ ዕላማ ሕብረ-ቁጽሪ ዝተዋህቦ ትርጉም ዘይብሉ ምሉእ ብምሉእ ይእለ። እቲ ጻዕዳ ቦታ ጥራይ እዩ ተሪፉና ዘሎኣብ መንጎ እቶም ዝተተርጐሙ “ሀ” ፊደላት። ደሓር ከኣ እዚ ሕቶ፤
translate('ሰላም፡ ስመይ ኢኒጎ ሞንቶያ፡ ንኣቦይ ቀቲልካዮ፡ ክትመውት ተዳሎ','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,','******************************************************')")
...እቲ ጸገም የብሉን ከምዚ ዝመስል ውጽኢት ድማ የውጽእ፤
"***** ** **** ** ***** ******* *** ****** ** ****** ******* ** ***"
ኣብ ጃቫስክሪፕት ብልክዕ ከምቲ ናይ XPath translate function ዝገብሮ ቀሊል መንገዲ ከምዘየለ ክገርመካ ይኽእል እዩ፣ ዋላ እኳ ንብዙሓት ኣጠቓቕማታት፣ replaceAll ምስ ስሩዕ መግለጺታት ክሕዞ ይኽእል እንተኾነ። ከምቲ ኣነ ዘርኣኽዎ ኣገባብ ክትጥቀም ትኽእል ኢኻ፡ ግን እቲ ትደልዮ ሕብረ ቃላት ምትርጓም ጥራይ እንተኾይኑ ትሕቲ ምቹእ እዩ። እዚ ዝስዕብ ዲሞ ንናይ XPath’s translate function ብምጥቕላል ናይ ጃቫስክሪፕት ስሪት ይህብ፤ ን Pen translate function [forked] ብብራያን ራስሙሰን ርአ። ከምዚ ዝኣመሰለ ነገር ኣበይ ክትጥቀመሉ ትኽእል? ንሴዛር ሳይፈር ኢንክሪፕሽን ምስ ሰለስተ ቦታ ኦፍሴት (ንኣብነት፡ ካብ 48 ቅ.ል.ክ. ዝነበረ ላዕለዋይ መስመር ምስጢራዊ ምግባር) ንርአ፤
translate("ቄሳር ንሩቢኮን ክሰግር መደብ ኣለዎ!", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", "XYZABCDEFGHIJKLMNOPQRSTUVWxyzabcdefghijklmnopqrstuvw") ዝብል ቃል ንምርካብ ኣብዚ ንጠውቅ።
እቲ እታው ጽሑፍ “ቄሳር ንሩቢኮን ክሰግር መደብ ኣለዎ!” ውጽኢቱ ድማ “Zxbpxo fp mixkkfkd ql zolpp qeb Oryfzlk!” ካልእ ቅልጡፍ ኣብነት ናይ ዝተፈላለዩ ተኽእሎታት ንምሃብ፡ ንኹሎም ኡምላውት ዝወስዱ ፊደላት ሓዊስካ፡ ናይ ሕብረ-ቁጽሪ ምእታው ዝወስድን ትርጉም ፋንክሽን ዝጥቀምን ብረት ፋንክሽን ሰሪሐ። ን Pen metal function [forked] ብብራያን ራስሙሰን ርአ።
const ብረት = (str) => { return translate(str, "AOUaou","ÄÖÜäöü"); }
ከምኡ’ውን፡ “ሞትሊ ክሩ ይገዝእ፡ ሮክ ኦን ዱድስ!”፡ ዝብል ጽሑፍ እንተተዋሂብዎ፡ “ሞትሊ ክሩ ሩልስ፡ ሮክ ኦን ዱድስ!” ሓደ ሰብ ኩሉ ዓይነት ፓሮዲ ኣጠቓቕማ ናይዚ ተግባር ክህልዎ ከም ዝኽእል ርዱእ እዩ። ንስኻ እንተኾንካ፡ እዚ ጽሑፍ ቲቪትሮፕስ ብዙሕ ምትብባዕ ክህበካ ይግባእ’ዩ። CSS ምስ XPath ምጥቃም ቀንዲ ምኽንያትና ንመምረጺታት CSS ብሓባር ምስ XPath ንምጥቃም ዘክር: CSS ዳርጋ ሓደ ክላስ እንታይ ምዃኑ ይርድኦ እዩ፣ እቲ ዝበለጸ ብXPath ክትገብሮ እትኽእል ግን ንጽጽር ሕብረ-ቁጽሪ ናይቲ ክፍሊ ባህሪ እዩ። እዚ ኣብ መብዛሕትኡ እዋን ክሰርሕ እዩ። ግን ንበል ሓደ ሰብ .primaryLinksን .primaryLinks2ን ዝበሃሉ ክላሳት ዝፈጠረሉን ንስኻ ድማ .primaryLinks ክላስ ንምርካብ XPath ትጥቀም እንተኾንካን ኣብ ሓደ ኩነታት እንተ ኣጋጢሙካ፡ ሽዑ ጸገም ምገጠመካ። ከምኡ ዝኣመሰለ ዕሽነት ክሳብ ዘይብሉ፡ ምናልባት XPath ምተጠቐምካ። ሰባት ከምኡ ዓይነት ዕሽነት ኣብ ዝገብሩሉ ቦታታት ከም ዝሰራሕኩ ክሕብር ከለኹ ግን የሕዝነኒ። ካልእ CSSን XPathን ብሓባር ዝጥቀም ዲሞ እንሆ። ነቲ ኮድ ተጠቒምና ኣብ ሓደ ናይቲ ሰነድ መስመር ዘይኮነ ዓውደ-ጽሑፍ መስመር (context node) XPath ክንሰርሕ ከለና እንታይ ከም ዝኸውን ዘርኢ እዩ። Pen cssን xpathን ብሓባር [forked] ብብራያን ራስሙሰን ርአ። እቲ ናይ CSS ሕቶ .relatedarticles a እዩ፣ እዚ ድማ ነቶም ክልተ a ባእታታት ኣብ ሓደ .relatedarticles class ዝተመደበ div ይወስድ። ብድሕሪኡ ሰለስተ “ሕማቕ” ሕቶታት ኣለዉ፣ ማለት ነዞም ባእታታት ከም ዓውደ-ጽሑፍ መስመር ሒዞም ክጎዩ ከለዉ ከምቲ ንሕና እንደልዮ ዘይገብሩ ሕቶታት። ስለምንታይ ካብቲ ትጽቢትካ ዝተፈልየ ባህሪ ከም ዘለዎም ክገልጽ እኽእል እየ። እተን ኣብ ሕቶ ዝኣትዋ ሰለስተ ሕማቓት ሕቶታት፤
//text(): ኩሉ እቲ ኣብቲ ሰነድ ዘሎ ጽሑፍ ይመልስ። //a/text(): ኩሉ ጽሑፍ ኣብ ውሽጢ መላግቦታት ኣብቲ ሰነድ ይመልስ። ./a/text(): ዝኾነ ውጽኢት ኣይመልስን።
ምኽንያት ናይዞም ውጽኢታት ናትካ ዓውደ-ጽሑፍ ካብቲ CSS ሕቶ ዝተመልሱ ባእታታት ክኸውን ከሎ፡ // ኣንጻር ምሉእ ሰነድ ስለ ዝኸይድ እዩ። እዚ እዩ ሓይሊ ኤክስፓት፤ ሲኤስኤስ ካብ ሓደ መስመር ንላዕሊ ናብ ሓደ ኣቦሓጎ ድሕሪኡ ናብ ሓደ ሓው ናይቲ ኣቦሓጎ ክኸይድ ኣይክእልን እዩ፣ ናብ ሓደ ዘርኢ ናይቲ ሓው ድማ ክወርድ ኣይክእልን እዩ። XPath ግን ይኽእል እዩ። እዚ ከምዚ ኢሉ እንከሎ፡ ./ ንደቂ ናይቲ ሕጂ ዘሎ መስመር ይሓትት፣ ኣብዚ ነጥቢ (.) ነቲ ሕጂ ዘሎ መስመር ይውክል፣ እቲ ንቕድሚት ዝኸይድ ስላሽ (/) ድማ ናብ ገለ ውላድ መስመር ምኻድ ይውክል — ባህሪ ድዩ፣ ባእታ ወይ ጽሑፍ ብቐጻሊ ክፋል ናይቲ መንገዲ ይውሰን። ግን ብሕቶ CSS ዝተመርጸ ውላድ ባእታ የለን፣ በዚ ኸኣ እቲ ሕቶ እውን ዋላ ሓንቲ ኣይመልስን እዩ። ኣብታ ናይ መወዳእታ ዲሞ ሰለስተ ጽቡቓት ሕቶታት ኣለዋ፤
.//ጽሑፍ(), . ./ጽሑፍ(), . normalize-space(./ጽሑፍ()) ዝብል እዩ።
እቲ normalize-space ዝብል ሕቶ ኣጠቓቕማ ፋንክሽን XPath ዘርኢ ኮይኑ፡ ኣብቶም ካልኦት ሕቶታት ዝተሓወሶ ጸገም እውን የዐሪ። እቲ ኤችቲኤምኤል ከምዚ ኢሉ እዩ ተሃኒጹ፤
ንፈተነ ባህርያትካ ብኣውቶማቲክ ምግባር ብ Selenium WebDriver ዝብል ጽሑፍ ኣሎ።
እቲ ሕቶ ኣብ መጀመርታን መወዳእታን ናይቲ ጽሑፍ መስመር መመገቢ መስመር ይመልስ፣ከምኡ’ውን normalize-space ነዚ የወግዶ። ዝኾነ ካብ ቡልያን ወጻኢ ካልእ ነገር ምስ ምእታው XPath ዝመልስ XPath ፋንክሽን ምጥቃም ኣብ ካልኦት ፋንክሽን ይምልከት። እዚ ዝስዕብ ዲሞ ብርክት ዝበሉ ኣብነታት ዘርኢ እዩ፤ ኣብነታት ናይ Pen xpath functions [forked] ብብራያን ራስሙሰን ርአ። እቲ ቀዳማይ ኣብነት ክትጥንቀቐሉ ዘለካ ጸገም እዩ ዘርኢ። ብፍላይ ድማ እዚ ዝስዕብ ኮድ፤
document.queryXPaths("ንኡስ-ድሕሪ(//a/@href,'https://')");
...ሓደ ሕብረ ቃላት ይመልስ፤
"www.smashingmagazine.com/2018/04/ምፍታን-ባህርያት-ሰለኒየም-ዌብድራይቨር/"
ትርጉም ኣለዎ ሓቀይ? እዞም ፋንክሽን እዚኦም ንኣረይስ ኣይመልሱን እዮም እንታይ ደኣ ንጽል ሕብረ ቃላት ወይ ንጽል ቁጽርታት እዮም ዝመልሱ። ነቲ ፋንክሽን ኣብ ዝኾነ ቦታ ብብዙሕ ውጽኢት ምጉያይ ነቲ ቀዳማይ ውጽኢት ጥራይ እዩ ዝምለስ። እቲ ካልኣይ ውጽኢት ብሓቂ እንታይ ከም እንደሊ ዘርኢ እዩ፤
document.queryCSSSelectors("a").queryXPaths("ንኡስ ሕብረ-ቁጽሪ-ድሕሪ(./@href,'https://')");
እዚ ድማ ክልተ ሕብረ-ቁጽሪ ዝሓዘ ስርርዕ ይመልስ፤
["www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/","www.smashingmagazine.com/2022/11/ኣውቶማቲክ-ውጽኢት-ፈተና-ተበጻሕነት-ምምሕያሽ/"]
ናይ XPath ፋንክሽን ልክዕ ከም ኣብ ጃቫስክሪፕት ዝርከቡ ፋንክሽን ክሰፍሩ ይኽእሉ። ስለዚ፡ ኣቃውማ URL ስማሺንግ መጽሔት እንተፈሊጥናዮ፡ ነዚ ዝስዕብ ክንገብር ንኽእል ኢና (ናይ ቅጥዒ ቃል ብቓላት ምጥቃም ይምከር)፤ `ትርጉም( ንኡስ ሕብረ-ቁጽሪ( ንኡስ ሕብረ-ቁጽሪ-ድሕሪ(./@href, ‘www.smashingmagazine.com/') ፣9)፣ '/','')`
እዚ ቁሩብ ኣዝዩ ዝተሓላለኸ ይኸውን ኣሎ ክሳብ ዝገብሮ ዝገልጽ ርእይቶታት ዘድልዮ: ኩሉ እቲ URL ካብቲ href attribute ድሕሪ www.smashingmagazine.com/ ውሰድ፣ ነተን ቀዳሞት ትሽዓተ ፊደላት ኣውጽእ፣ ድሕሪኡ ነቲ ንቕድሚት ስላሽ (/) ዝብል ፊደል ናብ ዋላ ሓንቲ ተርጒምካ ካብቲ መወዳእታ ንቕድሚት ስላሽ ክትገላገል። እቲ ውጽኢት ዝኾነ ስርርዕ፤
["feature-testing-selenium-webdriver","ኣውቶማቲክ-ውጽኢት-ፈተነ-ተበጻሕነት-ኣመሓይሽ"]
ተወሳኺ ናይ XPath ኣጠቓቕማ ጉዳያት XPath ብሓቂ ኣብ ፈተነ ክደምቕ ይኽእል እዩ። እቲ ምኽንያት ንምርኣይ ኣጸጋሚ ኣይኮነን፡ XPath ንነፍሲ ወከፍ ባእታ ኣብ DOM፡ ካብ ዝኾነ ቦታ ኣብ DOM ንምርካብ ክጥቀመሉ ይኽእል እዩ፡ CSS ግን ኣይክእልን እዩ። ኣብ ብዙሓት ዘመናዊ ስርዓታት ህንጸት CSS ክፍልታት ንሓድሕዶም ከም ዝቕጽሉ ክትጽበ ኣይትኽእልን ኢኻ፣ ምስ XPath ግን፣ ዝቕየር ኣቃውማ DOM ብዘየገድስ፣ ትሕዝቶ ጽሑፍ ናይ ሓደ ባእታ እንታይ ምዃኑ ዝያዳ ድልዱል ምትእስሳር ክንገብር ንኽእል። ተጻዋርነት ዘለዎ ናይ XPath ፈተነታት ክትገብር ዘኽእለካ ሜላታት መጽናዕቲ ተኻይዱ እዩ። ሓደ ነገር ስሙ ስለዝተቐየረ ወይ ስለዝተኣልየ፡ ሓደ CSS selector ድሕሪ ደጊም ስለዘይሰርሕ ጥራይ ፈተነታት ፍሌክ ኣውት ኮይኖም ክፈሽሉ ካብ ምግባር ዝኸፍእ የለን። XPath ኣብ ብዙሕ ሎኬተር ምውጻእ እውን ናይ ብሓቂ ብሉጽ እዩ። ንሓደ ባእታ ንምትእስሳር XPath queries ንምጥቃም ካብ ሓደ ንላዕሊ መንገድታት ኣሎ። ኣብ ሲኤስኤስ እውን ከምኡ። ግን ሕቶታት XPath ብዝያዳ ዕላማ ዝገበረ መንገዲ ኣብ ነገራት ክኹዕቱ ይኽእሉ እዮም፣ እዚ ድማ ነቲ ዝምለስ ዝድርት እዩ፣ እዚ ድማ ሓያሎ ክኾኑ ዝኽእሉ ምትእስሳራት ክህልዉ ዝኽእሉሉ ፍሉይ ምትእስሳር ክትረክብ የኽእለካ። ንኣብነት፡ ኣብ ውሽጢ div ዝርከብ ፍሉይ h2 ባእታ ንምምላስ XPath ክንጥቀም ንኽእል ኢና፡ እዚ ድማ ብቕጽበት ንሓው div ዝስዕብ ኮይኑ፡ ብግዲኡ፡ ኣብ ልዕሊኡ data-testID="leader" ዝብል ባህሪ ዘለዎ ውላድ ምስሊ ባእታ ዝሓዘ እዩ፤
እዚ ኣርእስቲ
ኣይትረኽብዎ።እዚ ኣርእስቲ እውን ኣይትረኽቡ
ርእሲ ናይቲ መራሒ ምስሊ
እዚ ሕቶ እዚ እዩ፤ document.queryXPaths(` ዝብል ቃል ንምርካብ ኣብዚ ንጠውቅ //div[ ዝስዕብ-ሓው::div[1] /img[@data-testID='መራሒ'] ] . /ሕ2/ ጽሑፍ() `)፤
እዚ ኩሉ ብኸመይ ከም ዝጥርነፍ ንምርኣይ ዲሞ ነእቱ፤ ን Pen Complex H2 Query [forked] ብብራያን ራስሙሰን ርአ። ስለዚ፡ እወ። ኣብ XPath ዝጥቀም ፈተና ናብ ዝኾነ ባእታ ብዙሓት ክኾኑ ዝኽእሉ መንገድታት ኣለዉ። XSLT 1.0 ምጉዳል ዋጋ ጋንታ ክሮም ንXSLT 1.0 ደገፍ ካብ መርበብ ሓበሬታ ንምእላይ መደብ ከምዘለዎ ብኣጋኡ ጠቒሰ ነይረ። እዚ ኣገዳሲ’ዩ ምኽንያቱ XSLT 1.0 ንለውጢ ሰነድ ኣብ XML ዘተኮረ ፕሮግራሚንግ ይጥቀም እዚ ድማ ብግዲኡ ኣብ XPath 1.0 ይምርኮስ፣ እዚ ድማ ኣብ መብዛሕትኦም ዳህሰስቲ ዝርከብ’ዩ። ከምኡ ምስ ዝኸውን፡ ሓደ ቁልፊ ኣካል ናይ XPath ክንስእን ኢና። ግን XPath ብሓቂ ንፈተነታት ምጽሓፍ ብሉጽ ምዃኑ ኣብ ግምት ብምእታው፡ XPath ብሓፈሻ ኣብ ቀረባ እዋን ክጠፍእ ዘይሕሰብ ኮይኑ ረኺበዮ። እዚ ክበሃል ከሎ፡ ሰባት ኣብ ሓደ ባህሪ ምስ ዝውሰድ ተገዳስነት ከም ዝህልዎም ኣስተብሂለ’የ። ከምኡ’ውን ኣብ’ቲ XSLT 1.0 ምጥፋእ ብርግጽ ሓቂ’ዩ። ኣብ ሃከር ኒውስ ዝፍጸም ዘሎ ምሉእ ዘተ ኣንጻር’ቲ ምውራድ ብዝቐርብ ሞጎተታት ዝተመልአ’ዩ። እቲ ጽሑፍ ንባዕሉ ብXSLT ናይ ብሎጊንግ ፍሬምዎርክ ምፍጣር ዓቢ ኣብነት እዩ። ንስኻነቲ ዘተ ባዕልኻ ከንብቦ ትኽእል ኢኻ፡ ግን ናብቲ ጃቫስክሪፕት ከመይ ጌሩ ከም ሽም ንXLST ነቶም ዓይነት ጉዳያት ንምሕላው ክጥቀመሉ ከም ዝኽእል ይኣቱ። ብተወሳኺ መርበብ ሓበሬታታት SaxonJS ክጥቀሙ ኣለዎም ዝብል ሓሳባት ርእየ ኣለኹ፣ እዚ ድማ ናብ JavaScript’s Saxon XSLT, XQUERY, and XPath engines ዝወስድ ወደብ እዩ። እዚ መሳጢ ሓሳብ’ዩ፡ ብፍላይ ሳክሶን-ጄኤስ ነቲ ሕጂ ዘሎ ስሪት ናይዞም ስፔሲፊኬሽን ከተግብር እንከሎ፡ ካብ 1.0 ወጻኢ ዝኾነ ስሪት XPath ወይ XSLT ዘተግብር መርበብ ሓበሬታ የለን፡ ንXQuery ዘተግብር’ውን የለን። ኣብ ሳክሶኒካ ዝርከብ ኖርም ቶቨይ-ዋልሽ ዝበሃል ድሕሪ ሳክሶንጄኤስን ካልኦት ስሪት ሳክሶን ሞተርን ዝርከብ ትካል ኢደይ ዘርጊሐዮ። ከምዚ ኢሉ፤ “ዝኾነ ሸያጢ መርበብ ሓበሬታ ንሳክሶንጄኤስ ከም መበገሲ ነጥቢ ዘመናዊ ቴክኖሎጂታት ኤክስኤምኤል ኣብቲ መርበብ ሓበሬታ ንምውህሃድ ክወስዶ እንተዝደሊ፡ ምስኦም ክንዛተየሉ ምተሓጐስና።”— ኖርም ቶቨይ-ዋልሽ
ግን ወሲኹ እውን፤ "ንሳክሶንጄኤስ በዚ ሕጂ ዘለዎ መልክዕ ወሲድካ ናብ ህንጸት መርበብ ሓበሬታ ከይተቐየረ ምውዳቕ እቲ ምቹእ ኣገባብ ክኸውን እዩ ዝብል ሓሳብ እንተሃልዩ ኣዝዩ ምገረመኒ። ሓደ ሸያጢ መርበብ ሓበሬታ፡ ብባህሪ ናይቲ መርበብ ሓበሬታ ዝሃንጾ ሓቂ፡ ነቲ ውህደት ካብቲ ንሕና ‘ካብ ደገ’ ክንገብሮ እንኽእል ኣዝዩ ዝዓሞቐ ደረጃ ክቐርቦ ይኽእል እዩ።"— ኖርም ቶቨይ-ዋልሽ
ርእይቶ ቶቨይ-ዋልሽ ቅድሚ’ቲ ናይ XSLT ምውራድ ምልክታ ሓደ ሰሙን ኣቢሉ ከምዝመጸ ምፍላጥ ኣገዳሲ’ዩ። መደምደምታ ክቕጽልን ክቕጽልን ይኽእል ነይረ። እዚ ግን ሓይሊ ኤክስፓት ዘርኣየን ንዓበይቲ ነገራት ንምዕዋት ከመይ ጌርካ ከም እትጥቀመሉ ዘርኢ ብዙሕ ኣብነታት ክህበካን ተስፋ እገብር። ዋላ’ውን ከም ዘሎ ፈሊጥካዮ ዘይትፈልጥ ወይ’ውን ክትበጽሖ ሓሲብካዮ ዘይትፈልጥ፡ ሎሚ’ውን ብዙሕ ረብሓ ዘለዎ ኣብ ስታክ መርበብ ሓበሬታ ዝርከብ ኣረጊት ቴክኖሎጂ’ዩ። ተወሳኺ ንባብ
“ምዕባይ ተጻዋርነት ኣውቶማቲክ ዌብ ቴስት ብተፈጥሮኣዊ ቋንቋ” (ACM Digital Library) ብማሩን ኣይሊ፣ ዩሱፍ ባኮኒ፣ ናደር ጃሉልን ሪማ ኪላኒንእዚ ጽሑፍ እዚ ንተጻዋርነት ዘለዎም ፈተናታት ንምጽሓፍ ብዙሓት ኣብነታት XPath ዝህብ እዩ። XPath (MDN)XPath ከመይ ከም ዝሰርሕ ብዝርዝር ዝገልጽ ቴክኒካዊ መብርሂ እንተደሊኹም እዚ ክትጅምሩሉ እትኽእሉ ብሉጽ ቦታ እዩ። XPath Tutorial (ZVON)እዚ ትምህርቲ’ዚ ሳላ ብዙሕ ኣብነታትን ንጹር መግለጺታትን ኣብ ናይ ገዛእ ርእሰይ ትምህርቲ ዝያዳ ሓጋዚ ኮይኑ ረኺበዮ። XPatherእዚ መስተጋብራዊ መሳርሒ ብቐጥታ ምስቲ ኮድ ክትሰርሕ የኽእለካ።