Import nástrojů

XPath (TMS)

Obsah je strojově přeložen z angličtiny s použitím Phrase Language AI.

XPath je zkratka pro jazyk XML Path. Lze s ním procházet elementy a atributy v dokumentu XML. Pokud jste nováčkem v XPATH, přečtěte si nejprve XPath Tutorial a prostudujte si oficiální dokumentaci XPATH.

Chatboti umělé inteligence mohou být velmi efektivní při generování a ověřování Xpath.

Podskupina XPath 1.0 je podporována s následujícími omezeními:

  • Osa ve fázi

    • Podporováno

      předek, předek-nebo-já, atribut, vedlejší, potomek, potomek-nebo-já

    • Nepodporováno

      následující, předchozí, následující sourozenec, předchozí sourozenec, jmenný prostor

  • Predikovat

    • Podporováno

      podmínky na aktuálním uzlu nebo uzlu předka a jeho vlastnosti (atributy, jmenné prostory)

    • Nepodporováno (např.)

      číslo pozice, vedlejší osa::, potomek, potomek-nebo-vlastní, následující::, předchozí::, následující-sourozenec::, předchozí-sourozenec::, funkce last()

Základní pravidla

  • Použít / a // v cestách

  • Použít jednoduché uvozovky ‚ ‘ v názvech

  • Pro sloučení požadavků použít potrubí |

  • Názvy rozlišují velká a malá písmena: <Body> se liší od <body>

Příklady

XPath Příklad 1 a XPath příklad 2 (včetně oboru názvů) jsou příklady následujících souborů:

  1. Import všech elementů a všech atributů

    //* | //@*

  2. Import všech elementů a hodnota atributu1

    (<elem1 atribut1="translate" atribut2="Nepřekládat"/>)

    //* | //@attribute1

  3. Import všech potomků vedlejších elementů

    //Child//*

  4. Import elementu lis a jeho potomků, pouze pokud je atribut translate='true' 

    (<lis translate="true">přeložit</lis><lis translate="false">nepřekládat</lis>)

    //lis[@translate='true']/descendant-or-self::*

  5. Import všech elementů a potomků, pokud je atribut elementu translate='true'

    //*[@translate='true']/descendant-or-self::*

  6. Import hodnoty atributu Text v elementu Data

    <Datový text="Text k překladu">

    //data/@text

  7. Import elementu <mT:translation> a jeho potomků, kromě elementu <mT:ignorovat>

    //mT:translation/descendant-or-self::*[not(ancestor-or-self::mT:ignore)]

  8. Vyloučit všechny elementy s atributem translate='false'

    //*[not(@translate='false')]

  9. Vyloučit elementy 'lis' s atributem translate='false'

    (<lis translate="false">Nepřekládat)

    //*[not(self::lis[@translate='false'])]

  10. Vyloučit elementy 'lis' s atributem translate='false' a jejich potomky

    (<lis translate="false"><p>Nepřekládat)

    //*[not(ancestor-or-self::lis[@translate='false'])]

  11. Vyloučit všechny elementy obsahující ‚odkaz‘

    (<menu1link><tmenu41link>)

    //*[not(contains(name(),'link')]

  12. Vyloučit všechny elementy, pokud mají oni nebo jejich předek atribut 'lis' obsahující 'link'

    (<ele lis=menu1link>, <mon lis=tmenu41link>)

    //*[not(ancestor-or-self::node()[contains(@lis, 'link')])]

  13. Import elementů PT, pokud má jejich hlavní LANG atribut „aktualizováno“ s rokem 2015

    (<LANG updated="20150213T121526"><PT>'

    //LANG[contains(@updated,'2015')]/PT

  14. Import elementů ‚Popis‘ a ‚Název‘, pouze pokud nejsou potomky elementů ‚Definice‘ nebo ‚Typy‘

    ://*[not(ancestor-or-self::*[(name()='Definitions') or (name()='Types')]/*

    [(name()='Popis') nebo (name()='Název')]

  15. XML s oborem názvů

    <root xmlns:xhtml="http://www.w3.org/1999/xhtml"><Child><Text>translate this</Text></Child>

    • Import všech elementů ve <vedlejší>:

      //*[local-name()='Child']//*

    • importovat pouze elementy <Text> ve <vedlejší>:

      //*[local-name()='Child']/*[local-name()='Text']

    • import všech elementů pod elementem <CONTRACT>, pokud má atribut <CATEGORY> v <CONTRACT> hodnotu <ORIGINAL>

      ://*[local-name()='CONTRACT' a @CATEGORY='ORIGINAL']//*

  16. XML s oborem názvů a atributy <root> xmlns:xhtml="http://www.w3.org/1999/xhtml"<vedlejší překlad='1'>vedlejší překlad</vedlejší>

    • import element <vedlejší>, pokud je atribut translate 1: //*[local-name()="vedlejší"][@*[local-name()='translate']='1']

    • import všech elementů s atributem translate=true: //*[@*[local-name()='translate']='true']

  17. XML s oborem názvů. Import cíle elementu z elementu tu, ale ne, pokud ID atributu obsahuje ‚img‘ nebo ‚extra‘:

    1. Příklad souboru:

      <tu ID="pages|obsah|extra"><ori xml:lang="cs">Course one</ori><cíl xml:lang="lang">Course one</cíl></tu>

    2. Příklad XPATH:

      //*[local-name()='tu' a nikoliv(contains(@id,'img') nebo contains(@id,'extra')]/*[local-name()='cíl']

  18. Import všech elementů kromě <komentářů> a <lis>, pokud <lis translate="true"> a jejich potomci:

    //*[count(ancestor-or-self::node()[(name()='lis' a (not(@translate='true')) ) nebo name()='komentář']=0]

  19. Import všech elementů kromě <komentáře> a kromě elementů s atributem <... attribute2="Nepřekládat"> a jejich potomků:

    //*[count(ancestor-or-self::node()[(@attribute2='Nepřekládat') nebo name()='komentář']=0]

  20. Import hodnot atributů varName a glossName, ale pouze pokud mají jejich předci atribut attribute1='translate' nebo attribute1='upravit':

    //*[(self::node()[@attribute1='translate' nebo @attribute1='upravit'])]//@*[local-name()='varName' nebo local-name()='glossName']

  21. Import všech elementů a atributů kromě elementů s atributem Name= Back, Menu nebo Time:

    //*[not(ancestor-or-self::node()[@Name='Back' nebo @Name='Menu' nebo @Name='Time'])] | //@*[not(ancestor-or-self::node()[@Name='Back' nebo @Name='Menu' nebo @Name='Time']]

    V tom případě může být lepší import všech atributů, které nejsou potřebné pro import, zamknout. Jakmile jsou segmenty zamknuto, zkopírujte v editor zdroj text na cíl, objednávka se originál převedl do překladu.

    1. Zamknout všechny elementy atributem Name s hodnotami: Zpět, Menu nebo Čas a jejich potomci:

      //*[@Name='Zpět' nebo @Name='Menu' nebo @Name='Time']/descendant-or-self::*

    2. Zamknout všechny atributy Název s hodnotami: Zpět, Menu nebo Čas a jejich potomci

      //*[@Name='Zpět' nebo @Name='Menu' nebo @Name='Time']//@*

Některé externí příklady.

Kontextová poznámka

Kontextové poznámky lze importovat do přeložených segmentů.

V tomto vzorku jsou tři příklady:

<?xml version-"1.0" encoding="utf-8"?>
<root>
<element context1="Poznámka v atributu parentElement 1 - vyberte ../@context1">
<field context2="Poznámka v atributu 1 - vyberte @context2">pro překlad1</field>
<context3>Poznámka v elementu 1 - vyberte ../context3</context3>
</element>

<element context1="Poznámka v atributu parentElement 2">
<field context2="Poznámka v atributu 2">pro překlad2</field>
<context3>Poznámka v elementu 2</context3>
</element>

</root>
  • Atribut v hlavním elementu (kontext 1): ../@context1

  • Atribut v elementu self (context2): @context2

  • Element na stejné úrovni (context 3): ../context3

Při importu Elements&Attributes: //* bude obsah kontextové poznámky importován i do zdrojových segmentů. Vyloučit elementy/atributy kontextové poznámky z obecného importu v Elements&Atributes.

Byl pro vás tento článek užitečný?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.