XPath илэрхийллийг хөтөч дотор турших нь
XPath (XML Path Language) нь XML болон HTML баримт бичгээс зангилаа (node), шинж чанар (attribute), эсвэл текстэн утгыг хайж олоход ашигладаг хүчирхэг хэл юм. "XPath Туршигч" хэрэгсэл нь таны оруулсан XML эсвэл HTML өгөгдөл дээр XPath илэрхийллийг бодит цаг хугацаанд ажиллуулж, тохирох элементүүдийг илрүүлэн харуулдаг.
Энэхүү хэрэгсэл нь өгөгдөл олборлогч (data scraping), систем шилжүүлэлт хийж буй мэргэжилтнүүд, хөгжүүлэгчид болон тест хийгчдэд зориулагдсан. Хэрэглэгч өөрийн өгөгдлийг оруулаад, хайх XPath илэрхийллээ бичиж, үр дүнг шууд хянах боломжтой.
Оролт ба гаралтын үзүүлэлтүүд
Хэрэгслийг үр дүнтэй ашиглахын тулд дараах техникийн хязгаарлалт болон оролт, гаралтын бүтцийг анхаарна уу.
Оролтын өгөгдөл
- XML / HTML оролт: Туршихыг хүсэж буй XML эсвэл HTML форматын эх бичвэр. Оролтын дээд хэмжээ 500,000 тэмдэгтээр хязгаарлагдана.
- XPath илэрхийлэл: Хайлт хийхэд ашиглах XPath заагч. Илэрхийллийн дээд хэмжээ 4,000 тэмдэгт байна.
- Оролтын төрөл: Хэрэглэгч өөрийн өгөгдлийн бүтцэд тохируулан "XML" эсвэл "HTML" сонголтоос сонгоно.
Гаралтын мэдээлэл
Хайлтын үр дүнд дараах мэдээллүүд гарна:
- Үр дүн: Нийт олдсон тохирцын тоог харуулна.
- Дэлгэрэнгүй: Тохирсон зангилаа бүрийн төрөл, нэр, зам (path) болон утгын урьдчилсан харагдацыг харуулна.
- Үр дүнг хуулах: Олдсон илэрхийллийн үр дүн бүрийн ард байрлах товчлуурыг ашиглан тухайн утгыг санах ойд шууд хуулж авах боломжтой.
- Тэмдэгт: Оруулсан баримт бичгийн нийт тэмдэгтийн тоог харуулна.
- Үр дүн: Дэлгэцэнд харуулж буй үр дүнгийн тоог заана.
XML болон HTML горимын ялгаа
XPath илэрхийллийг боловсруулахдаа сонгосон горимоос хамаарч дараах дүрмүүд үйлчилнэ.
XML горим (XML mode)
Энэ горимд XML-ийн нэрний зайн (namespace) дүрмүүдийг чанд баримталдаг. Хэрэв таны XML баримт бичигт нэрний зай зарлагдсан бол XPath илэрхийлэлдээ тэдгээр угтварыг ашиглах шаардлагатай. Жишээлбэл, зарлагдсан нэрний зайн дагуу //x:item гэж хайлт хийнэ. Хэрэв баримт бичигт анхдагч нэрний зай (default namespace) тодорхойлогдсон бол //item гэсэн илэрхийлэл нь тухайн баримт бичгийн тунхаглалыг дагаж мөрдөнө.
HTML горим (HTML mode)
HTML горим нь илүү уян хатан бөгөөд алдааг хүлцэх чадвартай. Энэ горимд нэрний зайн нарийн дүрэм шаардахгүйгээр //a гэх мэт энгийн замуудыг ашиглан ердийн HTML тагуудыг шууд хайж олох боломжтой.
Энэхүү хэрэгсэл нь статик текст дээр ажилладаг тул вэб хуудасны бодит цагийн бүтэц, хөтөч дээр дүрслэгдсэн DOM (Rendered DOM) эсвэл сүлжээний хүсэлтийг (network requests) орлохгүй гэдгийг анхаарах хэрэгтэй.
Алдаа болон хязгаарлалтууд
Хэрэгслийг ажиллуулах явцад дараах дүрэм болон хязгаарлалтууд үйлчилж, тохирох алдааны мэдэгдлүүд харагдана.
- Хугацааны хязгаарлалт: Хөтөчийг гацахаас сэргийлж, XPath илэрхийллийг тооцоолох хугацаа 2 секундээс хэтэрвэл ажиллагааг зогсооно. Энэ тохиолдолд "Энэ XPath-ийг ажиллуулахад хэтэрхий их цаг зарцуулж байна. Илэрхийллээ нарийвчлах эсвэл арай жижиг жишээ ашиглана уу." гэсэн мэдэгдэл гарна.
- Баримт бичгийн хэмжээ: Хэтэрхий том хэмжээтэй файл оруулбал "Энэ баримт бичиг энд туршихад хэтэрхий том байна. Арай жижиг жишээ ашиглана уу." гэж анхааруулна.
- Илэрхийллийн урт: Оруулсан XPath илэрхийлэл хэт урт байвал "Энэ XPath илэрхийлэл энд туршихад хэтэрхий урт байна." гэсэн алдаа заана.
- Хөрвүүлэлтийн алдаа: Оруулсан XML/HTML баримт бичгийн бүтэц буруу, хөрвүүлэх боломжгүй бол "Энэ баримт бичгийг хөрвүүлж чадсангүй." гэж гарна.
- Хүчингүй илэрхийлэл: XPath-ийн синтакс буруу бол "Энэ XPath илэрхийлэл хүчингүй байна." гэсэн алдаа заана.
- Тооцооллын алдаа: Илэрхийллийг боловсруулах боломжгүй үед "Энэ XPath-ийг тооцоолж чадсангүй." гэж харагдана.
- Үр дүнгүй тохиолдол: Хайлтаар ямар нэгэн зангилаа олдоогүй бол "Үр дүн олдсонгүй." гэж гарна.
- Үр дүнгийн хязгаар: Хайлтын үр дүн 200-аас давбал хэрэгсэл зөвхөн эхний 200 үр дүнг харуулах бөгөөд "Эхний
{max}-ийг харуулж байна." гэсэн тэмдэглэгээг тавина.
Нууцлал ба өгөгдөл боловсруулалт
Таны оруулсан XML, HTML өгөгдөл болон XPath илэрхийллүүд нь зөвхөн таны өөрийн хөтөч дотор боловсруулагдана. BroBroGo сервер рүү ямар нэгэн өгөгдөл хуулагдахгүй бөгөөд гадагш дамжихгүй.
Түгээмэл асуултууд
Би XPath-ийг XML-ээс гадна HTML дээр туршиж болох уу? Тийм. XML горим нь XML namespace дүрмийг баримталдаг. HTML горим нь илүү уян хатан бөгөөд //a гэх мэт энгийн замуудыг ердийн тагуудтай тааруулах боломжийг олгодог.
XML namespace хэрхэн ажилладаг вэ? Таны XML дотор зарлагдсан namespace угтваруудыг XPath дотор //x:item гэх мэтээр ашиглаж болно. Анхдагч namespace-ийн хувьд //item нь мөн баримт бичгийн тунхаглалыг дагаж мөрдөнө.
Яагаад хайлтын хугацаа дуусч (timeout) болох вэ? Маш том баримт бичиг эсвэл өргөн хүрээтэй илэрхийллүүдийг тооцоолохтод ихээхэн нөөц шаардагдаж болно. Хуудас гацахаас сэргийлж хэрэгсэл нь 2 секундын дараа ажиллагааг зогсоодог; замыг нарийвчлах эсвэл арай жижиг жишээ ашиглана уу.