calibre - en to zh_TW translation catalogue (23 entries)

en: XPath tutorial
zh_TW: 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.
zh_TW: 在本教程中，將對`XPath <https://en.wikipedia.org/wiki/XPath>`_進行簡要介紹，這是一種查詢語言，在cllibre中可用於選擇`HTML<https://en.wikipedia.org/wiki/HTML>`_文件的任意部分。 XPath是一種廣泛使用的標準，並且對其進行谷歌搜索將產生大量資訊。 但是，本教程重點介紹如何將XPath用於與電子書相關的任務，例如在非結構化HTML文件中查詢章節標題。

en: Contents
zh_TW: 目錄

en: Selecting by tag name
zh_TW: 按標記名選取

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::
zh_TW: 最简单的选择形式是按名称选择标记。例如，假设您要选择文档中的所有``<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::
zh_TW: 前缀`//` 表示“在文档的任何级别搜索”。现在假设您要搜索``<a>``标记内的``<span>``标记。这可以通过以下方式实现：

en: If you want to search for tags at a particular level in the document, change the prefix::
zh_TW: 如果要搜索文件中特定級別的標記，請更改字首：：

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.
zh_TW: 这将仅与:ref:``样本_电子书''中的``<p>A非常简短的电子书来演示XPath。</p>的使用''匹配，而不与其他任何``<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::
zh_TW: 现在假设您要同时选择``<h1>``和``<h2>``标记。为此，我们需要一个称为*谓词*的XPath结构。A：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.
zh_TW: 此XPath表達式中有幾個新功能。第一個是萬用字元``*``的使用。它的意思是*匹配任何標籤*。現在看一下測試表達式``name()=『h1』或name()=『h2』`。:術語:`名稱()`是一個*內建函式*的例子。 它只是評估標籤的名稱。 因此通過使用它，我們可以選擇名稱為`h1`或`h2`的標籤。注意：:Term:`名稱()`函式忽略名稱空間，因此不需要``h:``字首。XPath有幾個有用的內建函式。本教程還將介紹更多內容。

en: Selecting by attributes
zh_TW: 按屬性選擇

en: To select tags based on their attributes, the use of predicates is required::
zh_TW: 要根據屬性選擇標籤，需要使用謂詞：

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.
zh_TW: 這裡的``@``操作符指的是標籤的屬性。 您可以使用某些`XPath內建函式`_對屬性值執行更復雜的匹配。

en: Selecting by tag content
zh_TW: 按標籤內容選擇

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()`::
zh_TW: 使用XPath，您甚至可以根据标签中包含的文本选择标签。 最好的方法是通过内置函数:术语:`re:测试()`使用*正则表达式*的功能::

en: Here the ``.`` operator refers to the contents of the tag, just as the ``@`` operator referred to its attributes.
zh_TW: 这里的``.``运算符指代标签的内容，就像``@``运算符指代标签的属性一样。

en: Sample e-book
zh_TW: 電子書樣本

en: XPath built-in functions
zh_TW: XPath内置函数

en: name()
zh_TW: 名称()

en: The name of the current tag.
zh_TW: 当前标记的名称。

en: contains()
zh_TW: 包含（）

en: ``contains(s1, s2)`` returns `true` if s1 contains s2.
zh_TW: 如果s1包含s2，``contains(s1, s2)`` 返回 `true`

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>`_
zh_TW: 如果字串`src`與正規表示式`pattern`匹配，則``re:test(src, pattern, flags)``返回true。一個特別有用的標誌是``i``，它使匹配不區分大小寫。有關正規表示式語法的入門知識，請參見「正規表示式語法<https://docs.python.org/library/re.html>」_。
