calibre - en to uk translation catalogue (21 entries)

en: XPath tutorial
uk: Підручник з XPath

en: In this tutorial, you will be given a gentle introduction to `XPath <https://en.wikipedia.org/wiki/XPath>`_, a query language that can be used to select arbitrary parts of `HTML <https://en.wikipedia.org/wiki/HTML>`_ documents in calibre. XPath is a widely used standard, and googling it will yield a ton of information. This tutorial, however, focuses on using XPath for e-book related tasks like finding chapter headings in an unstructured HTML document.
uk: У цій частині підручника ми наведемо вступні зауваження щодо `XPath <https://en.wikipedia.org/wiki/XPath>`_, мови запитів, якою можна скористатися для вибору довільних частин документів `HTML <https://en.wikipedia.org/wiki/HTML>`_ у calibre. XPath є широковживаним стандартом, отже, пошук у мережі надасть вам дуже багато інформації щодо неї. Втім, увагу у цій частині підручника зосереджено на використанні XPath для завдань, пов’язаних із електронними книгами, зокрема пошуку заголовків глав у неструктурованому документі HTML.

en: Contents
uk: Зміст

en: Selecting by tag name
uk: Вибір за назвою теґу

en: The simplest form of selection is to select tags by name. For example, suppose you want to select all the ``<h2>`` tags in a document. The XPath query for this is simply::
uk: Найпростішою формою вибору є вибір теґів за назвою. Наприклад, припустімо, що вам хочеться вибрати усі теґи ``<h2>`` у документі. Запит XPath для цього буде дуже простим::

en: The prefix `//` means *search at any level of the document*. Now suppose you want to search for ``<span>`` tags that are inside ``<a>`` tags. That can be achieved with::
uk: Префікс «//» означає *шукати на усіх рівнях документа*. Тепер, припустімо, що ви хочете знайти теґи ``<span>``, які перебувають всередині теґів ``<a>``. Зробити це можна ось так::

en: If you want to search for tags at a particular level in the document, change the prefix::
uk: Якщо ви хочете шукати теґи на певному рівні у документі, змініть префікс::

en: This will match only ``<p>A very short e-book to demonstrate the use of XPath.</p>`` in the :ref:`sample_ebook` but not any of the other ``<p>`` tags. The ``h:`` prefix in the above examples is needed to match XHTML tags. This is because internally, calibre represents all content as XHTML. In XHTML tags have a *namespace*, and ``h:`` is the namespace prefix for HTML tags.
uk: Буде знайдено лише ``<p>A very short ebook to demonstrate the use of XPath.</p>`` у :ref:`sample_ebook`, але не буде знайдено жодного іншого теґу ``<p>``. Префікс ``h:`` у наведених вище прикладах потрібен для встановлення відповідності теґам XHTML. Він потрібен, тому що на внутрішньому рівні calibre представляє усі дані як XHTML. У теґів XHTML є власний *простір назв*, і ``h:`` є префіксом простору назв для теґів HTML.

en: Now suppose you want to select both ``<h1>`` and ``<h2>`` tags. To do that, we need a XPath construct called *predicate*. A :dfn:`predicate` is simply a test that is used to select tags. Tests can be arbitrarily powerful and as this tutorial progresses, you will see more powerful examples. A predicate is created by enclosing the test expression in square brackets::
uk: Тепер, припустімо, вам потрібно вибрати одразу теґи ``<h1>`` і теґи ``<h2>``. Для виконання цього завдання нам знадобиться конструкція XPath, яка називається *предикатом*. :dfn:`предикат` є простою перевіркою, яка використовується для вибору теґів. Перевірки можуть мати довільну потужність. У межах цього розділу ми наведемо і потужніші приклади. Предикат створюється взяттям виразу перевірки у квадратні дужки::

en: There are several new features in this XPath expression. The first is the use of the wildcard ``*``. It means *match any tag*. Now look at the test expression ``name()='h1' or name()='h2'``. :term:`name()` is an example of a *built-in function*. It simply evaluates to the name of the tag. So by using it, we can select tags whose names are either `h1` or `h2`. Note that the :term:`name()` function ignores namespaces so that there is no need for the ``h:`` prefix. XPath has several useful built-in functions. A few more will be introduced in this tutorial.
uk: У цьому виразі XPath є декілька нових особливостей. Першою є використання замінника ``*``. Цей замінник означає *знайти будь-який теґ*. Далі, зверніть увагу на вираз перевірки ``name()='h1' or name()='h2'``. :term:`name()` є прикладом *вбудованої функції*. Ця функція просто повертає назву теґу. Отже, за її допомогою ми можемо вибрати теґи, назвами яких є `h1` або `h2`. Зауважте, що функція :term:`name()` ігнорує простори назв, отже, у додаванні префікса ``h:`` немає потреби. У XPath є декілька корисних вбудованих функцій. Ще декілька буде представлено у цьому розділі.

en: Selecting by attributes
uk: Вибір за атрибутами

en: To select tags based on their attributes, the use of predicates is required::
uk: Для вибору тегу на основі його атрибутів слід користуватися предикатами::

en: Here, the ``@`` operator refers to the attributes of the tag. You can use some of the `XPath built-in functions`_ to perform more sophisticated matching on attribute values.
uk: Тут оператор ``@`` посилається на атрибути теґу. Ви можете скористатися деякими з `вбудованих функцій XPath`_ для встановлення складних відповідностей із значеннями атрибутів.

en: Selecting by tag content
uk: Вибір за вмістом теґу

en: Using XPath, you can even select tags based on the text they contain. The best way to do this is to use the power of *regular expressions* via the built-in function :term:`re:test()`::
uk: За допомогою XPath ви навіть можете вибирати теґи на основі тексту, який у них міститься. Найкращим способом це зробити є використання потужності *формальних виразів*, тобто вбудованої функції :term:`re:test()`::

en: Here the ``.`` operator refers to the contents of the tag, just as the ``@`` operator referred to its attributes.
uk: Тут оператор ``.`` посилається на вміст теґу, так само, як оператор ``@`` посилається на його атрибути.

en: Sample e-book
uk: Зразок книги

en: XPath built-in functions
uk: Вбудовані функції XPath

en: The name of the current tag.
uk: Назва поточного теґу.

en: ``contains(s1, s2)`` returns `true` if s1 contains s2.
uk: ``contains(s1, s2)`` повертає «true», якщо s1 містить s2.

en: ``re:test(src, pattern, flags)`` returns `true` if the string `src` matches the regular expression `pattern`. A particularly useful flag is ``i``, it makes matching case insensitive. A good primer on the syntax for regular expressions can be found at `regexp syntax <https://docs.python.org/library/re.html>`_
uk: ``re:test(джерело, взірець, прапорці)`` повертає `true`, якщо рядок `джерело` відповідає формальному виразу `взірець`. Одним із особливо корисних прапорців є ``i``, прапорець, який вимикає врахування регістру символів під час порівняння. Чудовий підручник із синтаксису формальних виразів можна знайти на `сторінці синтаксису формальних виразів <https://docs.python.org/library/re.html>`_
