유틸리티 가져오기

XPath(TMS)

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

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

AI 챗봇은 Xpath를 생성하고 검증하는 데 매우 효과적일 수 있습니다.

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

  • 계단의 축

    • 지원

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

    • 지원되지 않음

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

  • 술어

    • 지원

      현재 노드 또는 조상 노드에 대한 조건과 그 속성(속성, 네임스페이스)Conditions on current node or ancestor nodes and its properties (attributes, namespaces)

    • 지원되지 않음(예:

      위치 번호, 축 자식::, descendant, descendant-or-self, following::, preceding::, following-sibling::, preceding-sibling::, function last()

기본 규칙

  • 쓰다 / 그리고 // 경로에서

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

  • 파이프 사용 | 요청에 참여하기 위해

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

예제

XPath 예제 1그리고XPath 예제 2(with namespace)는 다음에 대한 예제 파일입니다.

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

    //* | //@*

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

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

    //* | //@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. Import value of the attribute Text in element Data

    <Data Text="Text for translation">

    //data/@text

  7. 가져오기 <mT:translation> element 및 element 제외된 해당 자손 <mT:ignore></mT:ignore></mT:translation>

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

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

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

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

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

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

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

    (<lis translate="false"><p>번역 안 함)</lis>

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

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

    (<menu1link><tmenu41link>)

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

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

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

    //*[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' 요소의 하위 항목이 아닌 경우에만 가져옵니다.

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

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

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

    <root xmlns:xhtml="http://www.w3.org/1999/xhtml"><Child><Text>이것을 번역하십시오</Text></Child></root>

    • 의 모든 요소 가져오기 <Child>:</Child>

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

    • 요소만 가져오기 <Text> 안으로 <Child>:</Child></Text>

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

    • element 아래의 모든 요소 가져오기 <CONTRACT>, if 속성 <CATEGORY> 안으로 <CONTRACT> 값이 있습니다. <ORIGINAL></ORIGINAL></CONTRACT></CATEGORY></CONTRACT>

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

  16. 네임스페이스 및 특성이 있는 XML <root> xmlns:xhtml="http://www.w3.org/1999/xhtml"<Child translate='1'>이것을 번역</Child>하십시오</root>

    • import 요소 <Child> 속성 translate가 1인 경우: *[local-name()="자식"][@*[local-name()='번역']='1']</Child>

    • translate=true 속성이 있는 모든 요소를 가져옵니다. *[@*[local-name()='번역']='true']

  17. 네임스페이스가 있는 XML. element에서 element target 가져오기Import the element target from element 그러나 속성 id에 'img' 또는 'extra'가 포함된 경우에는 해당되지 않습니다.

    1. 파일 예:

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

    2. XPATH 예제:

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

  18. 를 제외한 모든 요소 가져오기 <comment> 그리고 <lis> 하지 않으면 <lis translate="true"> 그리고 그들의 후손들:</lis></lis></comment>

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

  19. 를 제외한 모든 요소 가져오기 <comment> 속성이 있는 요소를 제외합니다. <... attribute2="Do not translate"> 그리고 그들의 후손들:</...></comment>

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

  20. 속성의 값 가져오기Import values of attributes varName 그리고 glossName 그러나 조상이 속성을 가지고 있는 경우에만 가능합니다. attribute1='번역하다' 또는 attribute1='편집하다':

    *[(self::node()[@attribute1='번역' 또는 @attribute1='편집']]]//@*[local-name()='varName' 또는 local-name()='glossName']

  21. 속성이 있는 요소를 제외한 모든 요소와 속성을 가져옵니다. 이름= 뒤로, 메뉴또는 시간:

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

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

    1. 속성이 있는 모든 요소를 잠급니다. 이름 값 사용: 뒤로, 메뉴또는 시간 그리고 그들의 후손들:

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

    2. 의 모든 속성을 잠급니다. 이름 값 사용: 뒤로, 메뉴또는 시간 그리고 그들의 후손들

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

일부 외부예제.

컨텍스트 노트

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

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

<?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">번역1의 경우</field>
<context3>요소 1의 참고 사항 - .를 선택합니다. /컨텍스트3</context3>
</element>

<element context1="Note in attribute of parentElement 2">
<field context2="Note in attribute 2">번역2의 경우</field>
<context3>요소 2의 참고 사항</context3>
</element>

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

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

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

가져오는 경우 요소&속성: //* 컨텍스트 노트의 컨텐츠도 소스 세그먼트로 가져옵니다. 컨텍스트 노트 요소/속성을 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.