Utilità di importazione

XPath (TMS)

Contenuti tradotti automaticamente dall'inglese con Phrase Language AI.

XPath sta per XML Path Language. Può essere usato per navigare tra elementi e attributi in un documento XML. Se sei nuovo di XPATH, consulta prima il Tutorial XPath e studia la documentazione XPATH ufficiale.

I chatbot IA possono essere molto efficaci nel generare e verificare Xpath.

Un sottoinsieme di XPath 1.0 è supportato con le seguenti limitazioni:

  • Asse nel passaggio

    • Supporta:

      ancestor, ancestor-or-self, attribute, (entità) subordinata, descendant, descendant-or-self

    • Non supporta:

      following, preceding, following-sibling, preceding-sibling, namespace

  • Predicato

    • Supporta:

      condizioni sul nodo corrente o sui nodi antenati e le relative proprietà (attributi, namespace)

    • Non supporta (ad esempio):

      numero di posizione, asse (entità) subordinata::, discendente, discendente-o-sé, following::, preceding::, following-sibling::, preceding-sibling::, funzione last()

Regole di base

  • Usare / e // nei percorsi

  • Usare virgolette singole ' ' nei nomi

  • Usare una pipe | per unire le richieste

  • I nomi sono sensibili alle maiuscole: <Body> è diverso da <body>

Esempi

Esempio XPath 1 e Esempio XPath 2 (con namespace) sono file di esempio per quanto segue:

  1. Importare tutti gli elementi e tutti gli attributi

    //* | //@*

  2. Importare tutti gli elementi e il valore dell'attributo1

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

    //* | //@attribute1

  3. Importare tutte le entità subordinate degli elementi (entità) subordinata

    //Child//*

  4. Importare un elemento lis e le sue entità subordinate solo se l'attributo translate='true' 

    (<lis translate=\"true\">tradurre questo</lis><lis translate=\"false\">non tradurre questo</lis>)

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

  5. Importare tutti gli elementi e le entità subordinate se l'attributo dell'elemento è translate='true'

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

  6. Importare il valore dell'attributo Text nell'elemento Data

    <Data Text="Text for translation">

    //data/@text

  7. Importare l'elemento <mT:translation> e le sue entità subordinate, eccetto l'elemento <mT:ignore>

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

  8. Escludere tutti gli elementi con l'attributo translate='false'

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

  9. Escludere gli elementi 'lis' con l'attributo translate='false'

    (<lis translate=\"false\">Non tradurre)

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

  10. Escludere gli elementi 'lis' con l'attributo translate='false' e le loro entità subordinate

    (<lis translate="false"><p>Do not translate)

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

  11. Escludere tutti gli elementi contenenti 'link'

    (<menu1link><tmenu41link>)

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

  12. Escludere tutti gli elementi se essi o la loro entità subordinata hanno un attributo 'lis' contenente 'link'

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

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

  13. Importare elementi PT se la loro entità principale LANG ha l'attributo 'updated' con anno 2015

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

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

  14. Importare gli elementi 'Description' e 'Name' solo se non sono (entità) subordinata di elementi 'Definitions' o 'Types'

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

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

  15. XML con namespace

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

    • importare tutti gli elementi in <Child>:

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

    • importare solo gli elementi <Text> in <Child>:

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

    • importare tutti gli elementi sotto l'elemento <CONTRACT>, se l'attributo <CATEGORY> in <CONTRACT> ha il valore <ORIGINAL>

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

  16. XML con namespace e attributi <root> xmlns:xhtml=\"http://www.w3.org/1999/xhtml\"<Child translate='1'>tradurre questo</Child>

    • importare l'elemento <Child> se l'attributo translate è 1: //*[local-name()=\"Child\"][@*[local-name()='translate']='1']

    • importare tutti gli elementi con l'attributo translate=true: //*[@*[local-name()='translate']='true']

  17. XML con namespace. Importare l'elemento destinazione dall'elemento tu, ma non quando l'attributo ID contiene 'img' o 'extra':

    1. Esempio di file:

      <tu id=\"pages|ID|extra\"><ori xml:lang=\"en\">Course one</ori><target xml:lang=\"lang\">Course one</target></tu>

    2. Esempio XPATH:

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

  18. Importare tutti gli elementi eccetto <comment> e <lis> a meno che <lis translate=\"true\"> e i loro discendenti:

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

  19. Importare tutti gli elementi eccetto <comment> ed eccetto gli elementi con attributo <... attribute2=\"Do not translate\"> e i loro discendenti:

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

  20. Importare i valori degli attributi varName e glossName ma solo se i loro antenati hanno l'attributo attribute1='translate' o attribute1='edit':

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

  21. Importare tutti gli elementi e gli attributi eccetto gli elementi con l'attributo Name= Back, Menu o Time:

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

    In questo caso potrebbe essere meglio importare tutto e bloccare gli attributi non richiesti per l'importazione. Una volta che i segmenti sono bloccati, copiare l'origine nella destinazione nell'editor per fare in modo che l'originale venga trasferito nella traduzione.

    1. Bloccare tutti gli elementi con l'attributo Name con valori: Back, Menu o Time e i loro discendenti:

      //*[@Name='Back' or @Name='Menu' or @Name='Time']/descendant-or-self::*

    2. Bloccare tutti gli attributi di Name con valori: Back, Menu o Time e i loro discendenti

      //*[@Name='Back' or @Name='Menu' or @Name='Time']//@*

Alcuni esempi esterni.

Nota di contesto

Le note di contesto possono essere importate nei segmenti tradotti.

Ci sono tre esempi in questo campione:

<?xml version-\"1.0\" encoding=\"utf-8\"?>
<root>
<element context1=\"Nota di contesto nell'attributo dell'entità principale 1 - Seleziona ../@context1\">
<field context2=\"Nota di contesto nell'attributo 1 - Seleziona @context2\" >per la traduzione1</field>
<context3>Nota di contesto nell'elemento 1 - Seleziona ../context3</context3>
</element>

<element context1=\"Nota di contesto nell'attributo dell'entità principale 2\">
<field context2=\"Nota di contesto nell'attributo 2\">per la traduzione2</field>
<context3>Nota di contesto nell'elemento 2</context3>
</element>

</root>
  • Attributo nell'entità principale (nota di contesto 1): ../@context1

  • Attributo nell'elemento stesso (nota di contesto 2): @context2

  • Elemento fratello (nota di contesto 3): ../context3

Se si desidera importare Elements&Attributes: //* anche il contenuto della nota di contesto verrà importato nei segmenti di origine. Escludere gli elementi/attributi della nota di contesto dall'importazione generale in Elements&Attributes.

Questo articolo ti è stato utile?

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.