Utilità di importazione

XPath (TMS)

Contenuti tradotti automaticamente dall'inglese con Phrase Language AI.

XPath sta per lingua percorso XML. Può essere utilizzato per navigare tra elementi e attributi in un documento XML. Se sei nuovo su XPATH, consulta prima il Tutorial XPath e studia la documentazione XPATH ufficiale.

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

È supportato un sottoinsieme di XPath 1.0 con le seguenti limitazioni:

  • Asse nel passaggio

    • Supportato

      antenato, antenato-o-sé, attributo, (entità) subordinata, discendente, discendente-o-sé

    • Non supportato

      spazio dei nomi following, previous, following-sibling, previous-sibling

  • Predica

    • Supportato

      condizioni sul nodo corrente o sui nodi antenati e sue proprietà (attributi, spazi dei nomi)

    • Non supportato (ad esempio)

      (entità) subordinata::, discendente, discendente-o-sé, seguente::, precedente::, following-sibling::, previous-sibling::, funzione last()

Regole di base

  • Usa / e // nei percorsi

  • Usa virgolette singole " " nei nomi

  • Usa un tubo | per unire le richieste

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

Esempi

L'esempio XPath 1 e l'esempio XPath 2 (con spazio dei nomi) sono file di esempio per quanto segue:

  1. Importa tutti gli elementi e tutti gli attributi

    //* | //@*

  2. Importa tutti gli elementi e il valore di attributo1

    (<elem1 attributo1="translate" attributo2="Non tradurre"/>)

    //* | //@attribute1

  3. Importa tutti i discendenti di elementi (entità) subordinate

    //Child//*

  4. Importa un elemento lis e i suoi discendenti solo se l'attributo translate='true' 

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

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

  5. Importa tutti gli elementi e i discendenti se l'attributo dell'elemento è translate='true'

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

  6. Importa valore dell'attributo Testo nell'elemento Dati

    <Testo dei dati = "Testo per la traduzione">

    //data/@text

  7. Importa l’elemento <mT:translation> e i suoi discendenti, tranne l’elemento <mT:ignora>

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

  8. Escludi tutti gli elementi con attributo translate='false'

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

  9. Escludi elementi "lis" con attributo translate='false'

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

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

  10. Escludi elementi "lis" con attributo translate='false' e i loro discendenti

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

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

  11. Escludi tutti gli elementi che contengono 'link'

    (<menu1link><tmenu41link>)

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

  12. Escludi tutti gli elementi se essi o il loro antenato hanno un attributo "lis" contenente "link"

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

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

  13. Importa elementi PT se la loro entità principale LANG ha l'attributo "aggiornato" con l'anno 2015

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

    //LANG[contiene(@aggiornato,'2015')]/PT

  14. Importa elementi 'Descrizione' e 'Nome' solo se non sono discendenti di elementi 'Definizioni' o 'Tipi'

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

    [(name()='Descrizione') o (name()='Nome')]

  15. XML con spazio dei nomi

    <root xmlns:xhtml="http://www.w3.org/1999/xhtml">(entità) subordinata><Text>translate this</Text></(entità) subordinata>

    • importare tutti gli elementi in (entità) subordinata :

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

    • importare solo 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 <ORIGINALE>

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

  16. XML con namespace e attributi <root> xmlns:xhtml="http://www.w3.org/1999/xhtml"<(entità) subordinata translate='1'>translate this</(entità) subordinata>

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

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

  17. XML con spazio dei nomi. Importa la destinazione dell'elemento dall'elemento tu, ma non quando l'ID attributo contiene "img" o "extra":

    1. Esempio di file:

      <tu id="pages|content|extra"><ori xml:lang="en">Corso uno</ori><destinazione xml:lang="lang">Corso uno</destinazione></tu>

    2. Esempio XPATH:

      //*[local-name()='tu' e not(contiene(@id,'img') o contiene(@id,'extra'))]/*[local-name()='destinazione']

  18. Importa tutti gli elementi tranne <commenta> e <lis> a meno che <lis translate="true"> e i loro discendenti:

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

  19. Importa tutti gli elementi tranne <commenta> ed eccetto gli elementi con attributo <... attributo2="Non tradurre"> e i loro discendenti:

    //*[count(ancestor-or-self::node()[(@attribute2='Non tradurre') o name()='commentare'])=0]

  20. Importa valori di attributi varName e glossName ma solo se i loro antenati hanno attributo attribute1='translate' o attribute1='modifica':

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

  21. Importa tutti gli elementi e attributi tranne gli elementi con attributo Nome = Indietro, Menu o Ora:

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

    In questo caso potrebbe essere meglio importare tutto e bloccare gli attributi non richiesti per importare. Una volta che i segmenti sono bloccato, copiare origine in destinazione nell'editor ordine trasferire l'originale nella traduzione.

    1. Blocca tutti gli elementi con l'attributo Nome con valori: Indietro, Menu o Ora e loro discendenti:

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

    2. Blocca tutti gli attributi di Nome con valori: Indietro, Menu o Tempo e loro discendenti

      //*[@Name='Indietro' o @Name='Menu' o @Name='Time']//@*

Alcuni esempi esterni.

Nota di contesto

Le note di contesto possono essere importate in segmenti tradotti.

Ci sono tre esempi in questo campione:

<?xml version-"1.0" encoding="utf-8"?>
<root>
<elemento context1="Nota nell'attributo di parentElement 1 - seleziona ../@context1">
<field context2="Nota nell'attributo 1 - seleziona @context2"> per translation1</field>
<context3>Nota nell'elemento 1 - seleziona ../context3</context3>
</elemento>

<element context1="Nota nell'attributo di parentElement 2">
<field context2="Nota nell'attributo 2">per traduzione2</field>
<contesto3>Nota nell'elemento 2</contesto3>
</elemento>

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

  • Attributo nell’elemento self (context2): @context2

  • Elemento di pari livello (contesto 3): ../contesto3

Se si importano Elementi e Attributi: //*, il contenuto della nota di contesto sarà importato anche nei segmenti di origine. Escludi 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.