유틸리티 가져오기

XPath(TMS)

컨텐츠는 영어 텍스트를 Phrase Language AI를 이용해 기계 번역한 것입니다.

XPath는 XML Path Language의 약자입니다. XML 문서의 요소 및 특성을 탐색하는 데 사용할 수 있습니다. XPATH를 처음 사용하는 경우 먼저 XPath 자습서를 참조하고 공식 XPATH 설명서를 연구하십시오.

XPath 1.0의 하위 집합은 다음과 같은 제한 사항과 함께 지원됩니다.

  • 단계의 축

    • 지원

      조상, 조상 또는 자신, 특성, 자식, 자손, 자손 또는 자신

    • 지원되지 않음

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

  • 술어

    • 지원

      현재 노드 또는 상위 노드의 조건과 해당 속성(특성, 네임스페이스)Conditions on current node or ancestor nodes and its properties (attributes, namespaces)

    • 지원되지 않음(예)

      위치 번호, 축 자식::, 하위 항목, 하위 항목 또는 자신, 다음::, 앞에::, 다음 형제::, 앞에-형제::, 함수 마지막()

기본 규칙

  • 경로에서 / 사용

  • 이름에 작은따옴표 ' ' 사용

  • 파이프 사용 | 요청 조인

  • 이름은 대소문자를 구분합니다: <Body><body와 다릅니다>

예제

XPath 예제 1XPath 예제 2(네임스페이스 포함)는 다음에 대한 예제 파일입니다.

  1. 모든 요소와 모든 속성 가져오기

    //* | //@*

  2. 모든 요소와 attribute1의 값을 가져옵니다.

    (<elem1 attribute1="번역" attribute2="번역 안 함"/>)

    //* | //@attribute1

  3. Child 요소의 모든 하위 항목 가져오기

    //Child//*

  4. 속성 translate='true'인 경우에만 요소 lis 및 그 자손을 가져옵니다. 

    (<lis translate="true">번역</lis><lis translate="false">번역하지 않음</lis>)

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

  5. 요소의 속성이 translate='true'인 경우 모든 요소와 하위 항목을 가져옵니다.

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

  6. 요소 Data의 Text 속성 값 가져오기

    <Data Text="번역할 텍스트">

    //data/@text

  7. <mT:> 요소 및 해당 하위 요소(<mT:ignore 제외)를 가져옵니다>

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

  8. translate='false' 속성이 있는 모든 요소 제외

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

  9. translate='false' 속성이 있는 'lis' 요소 제외

    (<lis translate="false">번역하지 않음)

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

  10. translate='false' 속성이 있는 요소 'lis'와 그 자손을 제외합니다.

    (<lis translate="false"><p>번역하지 않음)

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

  11. 'link'를 포함하는 모든 요소 제외

    (<menu1link><tmenu41link>)

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

  12. 요소 또는 해당 조상에 'link'를 포함하는 속성 'lis'가 있는 경우 모든 요소를 제외합니다.

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

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

  13. 부모 LANG에 2015 년으로 'updated'속성이있는 경우 요소 PT 가져 오기

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

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

  14. 'Description' 및 'Name' 요소가 'Definitions' 또는 'Types' 요소의 하위 항목이 아닌 경우에만 가져오기Import elements 'Description' and 'Name' only if they are not descendants of elements 'Definitions' or 'Types'

    ://*[not(ancestor-or-self::*[(name()='정의') 또는 (name()='Types')])]/*

    [(name()='설명') 또는 (name()='이름')]

  15. 네임스페이스가 있는 XML

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

    • <Child>의 모든 요소를 가져옵니다.

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

    • <Child>에서 요소 <Text>만 가져옵니다.

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

    • <CONTRAC>T>의 <CATEGORY> 속성의 값이 <ORIGINAL인 경우 <CONTRACT 요소 아래의 모든 요소를 가져옵니다>

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

  16. 네임스페이스 및 특성이 있는 XML<루트> xmlns:xhtml="http://www.w3.org/1999/xhtml"<Child translate='1'>translate this</Child>

    • import 요소 <Child> 속성이 translate 1인 경우: *[local-name()="Child"][@*[local-name()='translate']='1']

    • translate=true 속성을 가진 모든 요소 가져오기: *[@*[local-name()='translate']='true']

  17. 네임스페이스가 있는 XML입니다. 요소 tu에서 요소 대상을 가져오되 속성 id에 'img' 또는 'extra'가 포함된 경우에는 가져오지 않습니다.

    1. 파일 예:

      <tu id="pages|content|extra"><ori xml:lang="en">코스 1</ori><target xml:lang="lang">코스 1</target></tu>

    2. XPATH 예:

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

  18. <lis translate="true">와 그 자손이 아닌 한 <comment><lis>를 제외한 모든 요소를 가져옵니다.

    * [count (조상 또는 자신 :: 노드 ()[(이름 () = 'lis'및 (not (@translate = 'true')) ) 또는 이름 () = '주석']) = 0]

  19. <comment>를 제외한 모든 요소 및 < 속성이 있는 요소를 제외한 모든 요소 가져오기 attribute2="번역 안 함"> 및 그 자손:

    *[count(ancestor-or-self::node()[(@attribute2='번역하지 않음') 또는 name()='comment'])=0]

  20. varNameglossName 속성의 값을 가져오되 상위 항목에 attribute1='translate' 또는 attribute1='edit' 속성이 있는 경우에만 가져옵니다.

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

  21. Name= Back, Menu 또는 Time 속성이 있는 요소를 제외한 모든 요소와 속성을 가져옵니다.

    *[not(조상 또는 self::node()[@Name='뒤로' 또는 @Name='메뉴' 또는 @Name='시간'])] | @*[not(조상 또는 자체::node()[@Name='뒤로' 또는 @Name='메뉴' 또는 @Name='시간'])]

    이 경우 모두 가져오고 가져오기에 필요하지 않은 속성을 잠그는 것이 더 나을 수 있습니다. 세그먼트가 잠기면 원본을 번역으로 전송하기 위해 편집기에서 대상에 소스를 복사합니다.

    1. Name with values 속성을 가진 모든 요소를 잠급니다. 뒤로, 메뉴 또는 시간 및 해당 하위 항목:

      *[@Name='뒤로' 또는 @Name='메뉴' 또는 @Name='시간']/descendant-or-self::*

    2. Name의 모든 속성을 값으로 잠급니다. 뒤로, 메뉴 또는 시간 및 해당 하위 항목

      *[@Name='뒤로' 또는 @Name='메뉴' 또는 @Name='시간']//@*

몇 가지 외부 .

컨텍스트 메모

컨텍스트 메모는 번역된 세그먼트로 가져올 수 있습니다.

이 샘플에는 세 가지 예가 있습니다.

<?xml version-"1.0" encoding="utf-8"?>
<root>
<element context1="parentElement 1의 속성에 메모 - .. /@context1">
<field context2="속성 1의 참고 - @context2 선택">번역1의 경우</필드>
<context3>요소 1의 참고 - .를 선택합니다. /context3</context3입니다>
</element>

<element context1="parentElement 2 속성의 참고">
<field context2="속성 2의 참고">번역2의 경우</field>
<context3>요소 2</context3의 참고>
</element>

</root>
  • 부모 요소의 특성(컨텍스트 1): .. /@context1

  • self 요소의 특성(context2): @context2

  • 형제 요소(컨텍스트 3): .. /컨텍스트3

Elements&Attributes: //*를 가져오는 경우 컨텍스트 노트의 내용도 소스 세그먼트로 가져옵니다. 컨텍스트 노트 요소/속성을 Elements&Attributes의 일반 가져오기에서 제외합니다.

도움이 되었습니까?

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.