XPath е технология, която точно и ефективно специфицира и извлича необходимата информация от данни за дървесна структура, като HTML и XML.
Преглед на XPath
XPath е език, използван за специфициране и извличане на специфични елементи и атрибути в XML или HTML дърво на документи. Тъй като уеб страниците често са съставени от HTML, XPath се използва широко в различни ситуации, като уеб скрейпинг, търсене на данни и търсене в XML данни.
Типичната употреба е следната:
- Извличане на данни в уеб търсечи: XPath се използва за автоматично извличане на конкретни данни, като информация за продукти в електронни търговски сайтове или заглавия на статии в новинарски сайтове.
- Търсене и обработка на XML данни: В бизнес системите и обработката на връзки с данни данните често се обменят в XML формат. С помощта на XPath можете ефективно да извлечете необходимата информация от големи количества XML данни.
- Анализ на API отговори (XML формат): При използване на XML-базирани API-та, като SOAP, XPath се използва за парсиране на отговорни данни. Това ви позволява бързо да получите конкретни статусни кодове и данни за резултати, подобрявайки точността на системната интеграция и автоматизираната обработка.
Препоръка за инструменти
В процеса на учене и използване на XPath често срещани инструменти включват:
Инструменти за разработчици на Chrome: Мощен инструмент, който идва с браузъра на Chrome, можете да го повикате, като натиснете клавиша F12. В панела "Elements" можете бързо да намерите HTML елементи на уеб страница, като задържите курсора и кликате, а с десен бутон върху елемент можете директно да копирате XPath израза за лесна проверка и тестване. Например, при анализ на страница за продукти в електронната търговия, можете да използвате инструменти за разработчици на Chrome, за да получите бързо XPath за имена на продукти, цени и други елементи. Firefox Developer Tools: Идва и с браузъра, подобно на Chrome Developer Tools. Също така ви позволява лесно да намирате елементи на страницата си, както и да преглеждате и тествате XPath изрази. Това е добра опция за разработчици, които са свикнали да използват браузъра Firefox. Онлайн инструменти за тестване на XPath: Онлайн инструменти като "XPath Tester" могат да се използват без инсталация и чрез отваряне на уеб страница. Просто поставете съдържанието на XML или HTML документ, въведете XPath израз и вижте резултатите от съвпадението в реално време. Този инструмент е особено подходящ за начинаещи, за да започнат бързо и да изпълняват прости XPath упражнения. XPath Helper плъгин: Като пример Chrome Browser, след инсталиране на плъгина XPath Helper, той добавя плаващ прозорец към браузъра при сърфиране в интернет, показващ пътя на XPath на текущия елемент за мишката и можете да редактирате и тествате XPath изрази директно в прозореца, което значително подобрява ефективността на разработката.
Синтаксис на XPath Abstract
Изберете възел
XPath използва пътни изрази, за да избере възли в XML документ. Възлите се избират чрез следване на път или стъпка. Най-полезните изрази за пътища са изброени по-долу:
изразяване | описание | | Nodename | Избира всички дъщерни възли на този възел. | | / | Изберете от коренния възел (вземете child node). | | // | Избира възли в документа от текущия възел на съответстващия избор, независимо от тяхното местоположение (вземете потомствени възли). | | . | Изберете текущия възел. | | .. | Изберете родителския възел на текущия възел. | | @ | Изберете атрибут. |
В таблицата по-долу сме изброили някои пътни изрази заедно с резултатите от тези изрази:
Пътни изрази | Резултат | | книжарница | Изберете всички възли с имена bookstore. | | /bookstore | Изберете книжарница с коренов елемент. Забележка: Ако пътят започва с напреднал наклон ( / ), тогава този път винаги представлява абсолютен път към елемент! | | Книжарница/Книга | Избира всички елементи на книгата, които са детски елементи на книжарницата. | | //book | Избира всички поделементи на книгата, независимо от тяхната позиция в документа. | | книжарница//книга | Изберете всички елементи на книгата, които са потомци на елемента на книжарницата, независимо къде се намират под книжарницата. | | @lang | Изберете всички имоти с име lang. |
Предикати
Предикат се използва за намиране на конкретен възел или възел, съдържащ определена стойност. Предикатът е вграден в квадратни скоби. В таблицата по-долу изброяваме някои пътни изрази с предикати и резултатите от тези изрази:
Пътни изрази | Резултат | | /bookstore/book[1] | Изберете първия елемент от книгата, който е част от детския елемент на книжарницата. | | /bookstore/book[last()] | Избира последния елемент от книгата, който е част от поделемента на книжарницата. | | /bookstore/book[last()-1] | Избира предпоследния елемент от книгата, който принадлежи на детския елемент на книжарницата. | | /bookstore/book[position()<3] | Изберете първите два елемента от книгата, които са детски елементи на елемента на книжарницата. | | Заглавие[@lang] | Избира всички елементи на титула, които имат имот с име lang. | | title[@lang='eng'] | Избира всички заглавни елементи, които имат lang атрибут с eng стойност. | | /bookstore/book[price>35.00] | Избира всички елементи на книжарницата, а стойността на ценовия елемент трябва да е по-голяма от 35.00. | | /bookstore/book[price>35.00]//title | Избира всички заглавни елементи на елемента на книгата в елемента книжарница, а стойността на ценовия елемент трябва да е по-голяма от 35.00. |
Изберете неизвестен възел
XPath уайлдкарти могат да се използват за откриване на неизвестни XML елементи.
Заместващи | описание | | * | Съвпада с всеки елементен възел. | | @* | Съвпада с всеки атрибутен възел. | | node() | Съвпада с всеки тип възел. |
В таблицата по-долу изброяваме някои пътни изрази и резултатите от тези изрази:
Пътни изрази | Резултат | | /bookstore/* | Избира всички детски елементи на елемента на книжарницата. | | //* | Избира всички елементи в документа. | | Заглавие[@*] | Избира всички елементи на заглавието с атрибути. |
Изберете няколко пътя
Като използвате "|" в израза за пътя Оператори, можете да изберете няколко пътя.
В таблицата по-долу изброяваме някои пътни изрази и резултатите от тези изрази:
Пътни изрази | Резултат | | //book/title | //book/price | Избира всички елементи на заглавие и цена в елемента на книгата. | | Заглавие | цена | Изберете всички елементи на заглавие и цена в документа. | | /bookstore/book/title | //price | Избира всички заглавни елементи на елемента на книгата, които принадлежат към елемента на книжарницата, както и всички ценови елементи в документа. |
XPath функция
Следва коментиран списък с XPath-специфични добавки към XPath от основните XPath функции и XSLT, включително описания, синтаксис, списъци с параметри, типове резултати и източници в съответните препоръки на W3C.
- Булев()
- Таван()
- choose()
- concat()
- съдържа()
- count()
- current() специфичен за XSLT
- document() специфичен за XSLT
- element-available()
- false()
- floor()
- format-number() специфичен за XSLT
- функция-налична()
- generate-id() XSLT специфичен
- id()
- key() XSLT специфичен
- lang()
- последни()
- местно име()
- name()
- namespace-uri()
- нормализиране на пространството()
- не()
- число()
- позиция()
- round()
- започва с()
- string()
- дължина на струна()
- substring()
- substring-after()
- substring-before()
- sum()
- system-property() специфичен за XSLT
- Преводи()
- вярно()
- unparsed-entity-url() специфичен за XSLT
Практически тестове
Отвори Chrome и получи текстовото съдържание на всички връзки към таба A със следната команда:
Както е показано по-долу:
Препратка:Входът към хиперлинк е видим. |