Import nástrojů

XPath (TMS)

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

XPath znamená XML Path Language. Může být použit k navigaci mezi prvky a atributy v XML dokumentu. Pokud jste noví v XPATH, prosím, nejprve si přečtěte XPath Tutorial a prostudujte oficiální XPATH dokumentaci.

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

Podmnožina XPath 1.0 je podporována s následujícími omezeními:

  • Os v fázi

    • Podporováno

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

    • Nepodporováno

      následující, předcházející, následující-sibling, předcházející-sibling, namespace

  • Predikát

    • Podporováno

      podmínky na aktuálním uzlu nebo uzlech předků a jejich vlastnostech (atributy, namespace)

    • Nepodporováno (například)

      číslo pozice, osa child::, potomek, potomek-nebo-sám, following::, preceding::, following-sibling::, preceding-sibling::, funkce last()

Základní pravidla

  • Použijte / a // v cestách

  • Použijte jednoduché uvozovky ' ' v názvech

  • Použijte trubku | pro spojení požadavků

  • Názvy jsou citlivé na velikost písmen: <Body> se liší od <body>

Příklady

XPath příklad 1 a XPath příklad 2 (s názvem prostoru) jsou příkladové soubory pro následující:

  1. Importovat všechny prvky a všechny atributy

    //* | //@*

  2. Importovat všechny prvky a hodnotu atributu1

    (<elem1 attribute1="translate" attribute2="Do not translate"/>)

    //* | //@attribute1

  3. Importovat všechny potomky prvků Child

    //Child//*

  4. Importovat prvek lis a jeho potomky pouze pokud je atribut translate='true' 

    (<lis translate="true">translate this</lis><lis translate="false">do not translate this</lis>)

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

  5. Importovat všechny prvky a potomky, pokud je atribut prvku translate='true'

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

  6. Importovat hodnotu atributu Text v prvku Data

    <Data Text="Text k překladu">

    //data/@text

  7. Importovat prvek <mT:translation> a jeho potomky, kromě prvku <mT:ignore>

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

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

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

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

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

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

  10. Vyloučit prvky '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 prvky obsahující 'link'

    (<menu1link><tmenu41link>)

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

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

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

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

  13. Importovat prvky PT, pokud jejich rodič LANG má atribut 'updated' s rokem 2015

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

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

  14. Importovat prvky 'Description' a 'Name' pouze pokud nejsou potomky prvků 'Definitions' nebo 'Types'

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

    [(name()='Description') or (name()='Name')]

  15. XML s názvem prostoru

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

    • importovat všechny prvky v <Child>:

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

    • importovat pouze prvky <Text> v <Child>:

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

    • importovat všechny prvky pod prvkem <CONTRACT>, pokud atribut <CATEGORY> v <CONTRACT> má hodnotu <ORIGINAL>

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

  16. XML s názvem prostoru a atributy <root> xmlns:xhtml="http://www.w3.org/1999/xhtml"<Child translate='1'>přeložte toto</Child>

    • importovat prvek <Child> pokud je atribut translate 1: //*[local-name()="Child"][@*[local-name()='translate']='1']

    • importovat všechny prvky s atributem translate=true: //*[@*[local-name()='translate']='true']

  17. XML s názvem prostoru. Importujte prvek cíl z prvku tu, ale ne pokud atribut id obsahuje 'img' nebo 'extra':

    1. Příklad souboru:

      <tu id="pages|content|extra"><ori xml:lang="en">Kurz jedna</ori><target xml:lang="lang">Kurz jedna</target></tu>

    2. Příklad XPATH:

      //*[local-name()='tu' and not(contains(@id,'img') or contains(@id,'extra'))]/*[local-name()='target']

  18. Importujte všechny prvky kromě <comment> a <lis>, pokud <lis translate="true"> a jejich potomci:

    //*[count(ancestor-or-self::node()[(name()='lis' and (not(@translate='true')) ) or name()='comment'])=0]

  19. Importujte všechny prvky kromě <comment> a kromě prvků s atributem <... attribute2="Nepřekládat"> a jejich potomci:

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

  20. Importujte hodnoty atributů varName a glossName, ale pouze pokud jejich předci mají atribut attribute1='translate' nebo attribute1='edit':

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

  21. Importujte všechny prvky a atributy kromě prvků s atributem Name= Zpět, Menu, nebo Čas:

    //*[not(ancestor-or-self::node()[@Name='Zpět' or @Name='Menu' or @Name='Čas'])] | //@*[not(ancestor-or-self::node()[@Name='Zpět' or @Name='Menu' or @Name='Čas'])]

    V tomto případě může být lepší importovat vše a zamknout atributy, které nejsou potřebné pro import. Jakmile jsou segmenty zamknuty, zkopírujte zdroj do cíle v editoru, abyste měli originál převedený na překlad.

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

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

    2. Zamkněte všechny atributy Name s hodnotami: Zpět, Menu, nebo Čas a jejich potomci

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

Některé externí příklady.

Kontextová poznámka

Kontextové poznámky mohou být importovány 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 parent elementu (kontext 1): ../@context1

  • Atribut v elementu (kontext2): @context2

  • Sourozenecký element (kontext 3): ../context3

Pokud importujete Elementy&atributy: //*, obsah kontextové poznámky bude také importován do zdrojových segmentů. Vyloučit prvky/atributy kontextové poznámky z obecného importu v prvcích a atributech.

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.