Utilitários de importação

XPath (TMS)

O conteúdo de toda a Central de Ajuda é traduzido automaticamente de inglês pelo Phrase Language AI.

XPath significa XML Path Language. Ele pode ser usado para navegar por elementos e atributos em um documento XML. Se for novo no XPATH, consulte oXPath Tutorialprimeiro e estudar o oficialDocumentação do XPATH.

Os chatbots de IA podem ser muito eficazes na geração e verificação do Xpath.

Um subconjunto do XPath 1.0 é suportado com as seguintes limitações:

  • Eixo em passo

    • Suportado

      ancestral, ancestral-ou-eu, atributo, criança, descendente, descendente-ou-si mesmo

    • Não suportado

      seguinte, anterior, seguinte-irmão, anterior-irmão, namespace

  • Predicado

    • Suportado

      condições no nó atual ou nós ancestrais e suas propriedades (atributos, namespaces)

    • Não suportado (por exemplo)

      número da posição, eixo filho::, descendente, descendente ou próprio, seguinte::, anterior::, seguinte-irmão::, anterior-irmão::, função last()

Regras básicas

  • Usar / e // em caminhos

  • Use aspas simples ' ' em nomes

  • Use um pipe | para juntar os pedidos

  • Os nomes diferenciam maiúsculas de minúsculas: <Body> é diferente de <body></body></Body>

Exemplos

XPath Exemplo 1eExemplo XPath 2(com namespace) são arquivos de exemplo para o seguinte:

  1. Importar todos os elementos e todos os atributos

    //* | //@*

  2. Importar todos os elementos e o valor de attribute1

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

    //* | //@attribute1

  3. Importar todos os descendentes de elementos filho

    //Child//*

  4. Importar um elemento lis e seus descendentes somente se o atributo translate='true' 

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

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

  5. Importe todos os elementos e descendentes se o atributo do elemento for translate='true'

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

  6. Importar valor do atributo Texto no elemento Dados

    <Data Text="Text for translation">

    //data/@text

  7. Importe o <mT:translation> elemento e seus descendentes, exceto elemento <mT:ignore></mT:ignore></mT:translation>

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

  8. Exclua todos os elementos com o atributo translate='false'

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

  9. Exclua os elementos 'lis' com o atributo translate='false'

    (<lis translate="false">Não traduzir)</lis>

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

  10. Exclua os elementos 'lis' com o atributo translate='false' e seus descendentes

    (<lis translate="false"><p>Não traduza)</lis>

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

  11. Exclua todos os elementos que contenham 'link'

    (<menu1link><tmenu41link>)

    *[not(contém(nome(),'link'))]

  12. Exclua todos os elementos se eles ou seu ancestral tiverem um atributo 'lis' contendo 'link'

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

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

  13. Importar elementos PT se seu LANG pai tiver o atributo 'atualizado' com o ano 2015

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

    LANG[contém(@updated,'2015')]/PT

  14. Importe os elementos 'Descrição' e 'Nome' somente se eles não forem descendentes dos elementos 'Definições' ou 'Tipos'

    ://*[not(ancestral-ou-eu::*[(nome()='Definições') ou (nome()='Tipos')])]/*

    [(nome()='Descrição') ou (nome()='Nome')]

  15. XML com namespace

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

    • importar todos os elementos em <Child>:</Child>

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

    • importar apenas elementos <Text> em <Child>:</Child></Text>

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

    • Importar todos os elementos em Elemento <CONTRACT>, atributo if <CATEGORY> em <CONTRACT> tem o valor <ORIGINAL></ORIGINAL></CONTRACT></CATEGORY></CONTRACT>

      ://*[nome-local()='CONTRATO' e @CATEGORY='ORIGINAL']//*

  16. XML com namespace e atributos <root> xmlns:xhtml="http://www.w3.org/1999/xhtml"<Child translate='1'>traduzir isso</Child></root>

    • elemento de importação <Child> Se o atributo Translate for 1: *[nome-local()="Criança"][@*[nome-local()='traduzir']='1']</Child>

    • Importe todos os elementos com o atributo translate=true: *[@*[nome-local()='traduzir']='verdadeiro']

  17. XML com namespace. Importar o destino do elemento do elemento você, mas não quando o id do atributo contém 'img' ou 'extra':

    1. Exemplo de arquivo:

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

    2. Exemplo de XPATH:

      *[nome-local()='tu' and not(contains(@id,'img') ou contains(@id,'extra'))]/*[nome-local()='alvo']

  18. Importar todos os elementos, exceto <comment> e <lis> a menos que <lis translate="true"> e seus descendentes:</lis></lis></comment>

    *[count(ancestral-ou-eu::node()[(nome()='lis' e (not(@translate='true')) ) ou nome()='comentário'])=0]

  19. Importar todos os elementos, exceto <comment> e exceto elementos com atributo <... attribute2="Do not translate"> e seus descendentes:</...></comment>

    *[count(ancestor-or-self::node()[(@attribute2='Não traduzir') ou name()='comment'])=0]

  20. Importar valores de atributos varName e nome do brilho mas apenas se seus ancestrais tiverem atributo atributo1='traduzir' ou atributo1='editar':

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

  21. Importe todos os elementos e atributos, exceto os elementos com o atributo Nome= Voltar, Menuou Hora:

    *[not(ancestral-ou-eu::node()[@Name='Voltar' ou @Name='Menu' ou @Name='Tempo'])] | @*[not(ancestral-ou-eu::node()[@Name='Voltar' ou @Name='Menu' ou @Name='Tempo'])]

    Nesse caso, pode ser melhor importar todos e bloquear os atributos não necessários para a importação. Depois que os segmentos estiverem bloqueados, copie a origem para o destino no editor para que o original seja transferido para a tradução.

    1. Bloquear todos os elementos com o atributo Nome com valores: Voltar, Menuou Hora e seus descendentes:

      *[@Name='Voltar' ou @Name='Menu' ou @Name='Tempo']/descendente-ou-eu::*

    2. Bloquear todos os atributos de Nome com valores: Voltar, Menuou Hora e seus descendentes

      *[@Name='Voltar' ou @Name='Menu' ou @Name='Hora']//@*

Alguns externosExemplos.

Nota de contexto

As notas de contexto podem ser importadas para segmentos traduzidos.

Há três exemplos neste exemplo:

<?xml version-"1.0" encoding="utf-8"?>
<root>
<element context1="Note in attribute of parentElement 1 - select ../@context1">
<field context2="Note in attribute 1 - select @context2">para tradução1</field>
<context3>Nota no elemento 1 - selecione .. /contexto3</context3>
</element>

<element context1="Note in attribute of parentElement 2">
<field context2="Note in attribute 2">para tradução2</field>
<context3>Nota no elemento 2</context3>
</element>

</root>
  • Atributo no elemento pai (contexto 1): .. /@context1

  • Atributo no elemento self (context2): @context2

  • Elemento irmão (contexto 3): .. /contexto3

Se estiver importando Elementos&Atributos: //* O conteúdo da nota de contexto também será importado para os segmentos de origem. Exclua os elementos/atributos da nota de contexto da importação geral em Elements&Attributes.

Esse artigo foi útil?

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.