XSLT / XPATH를 사용하여 특정 값을 가진 자식 요소가있는 요소를 선택합니다.

미스터 보이

도구 (VSS 데이터베이스에서보고)의 보고서로 큰 (200k 줄) XML 파일이 있습니다. 다음과 같은 많은 <file>요소 로 구성됩니다 .

<file>
 <name>file.bat</name>
 <version>111</version>
 <checkedout>No</checkedout>
 <binary>Text</binary>
 <vss_path>$/Code/file.bat</vss_path>
 <original_path>C:\code\file.bat</original_path>
 <action>Labeled &apos;1.2.3.4&apos;</action>
 <date>27/09/2013 09:08:00</date>
 <comment></comment>
 <label>1.2.3.4</label>
 <label_comment></label_comment>
 <user>John</user>
 <shared_links>
  <shared_link>$/Beta_1</shared_link>
  <shared_link>$/Branches/New_Feature</shared_link>
 </shared_links>
</file>

내가 찾으려 <file> 적어도 하나가이 요소 <shared_link>로 시작하는 / "$ / 베타"접두사를.

이상적인 세계에서 일치하는 각 요소에 대해 원하는 것은 <name>, <vss_path>및 (일치하는) <shared_link>부분이지만 그게 정확히 중요하지는 않습니다.

나는 XSLT / XPATH에 정통하지 않지만 그들이 이런 일을 할 수 있다고 믿습니까?

나는 L

이 XSLT 스타일 시트 :

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>

  <xsl:template match="node()|@*">
    <xsl:copy>
      <xsl:apply-templates select="node()|@*"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="root">
    <xsl:copy>
      <xsl:apply-templates select="file[shared_links[shared_link[starts-with(., '$/Beta')]]]"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="file">
    <xsl:copy>
      <xsl:apply-templates select="name | vss_path | shared_links"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="shared_links">
    <xsl:copy>
      <xsl:apply-templates select="shared_link[starts-with(., '$/Beta')]"/>
    </xsl:copy>
  </xsl:template>

</xsl:stylesheet>

이 입력 XML에 적용 할 때 (사용자의 것과 같지만 일치하지 않는 추가 파일이 추가됨) :

<root>
  <file>
    <name>file.bat</name>
    <version>111</version>
    <checkedout>No</checkedout>
    <binary>Text</binary>
    <vss_path>$/Code/file.bat</vss_path>
    <original_path>C:\code\file.bat</original_path>
    <action>Labeled &apos;1.2.3.4&apos;</action>
    <date>27/09/2013 09:08:00</date>
    <comment></comment>
    <label>1.2.3.4</label>
    <label_comment></label_comment>
    <user>John</user>
    <shared_links>
      <shared_link>$/Alpha_1</shared_link>
      <shared_link>$/Branches/New_Feature</shared_link>
    </shared_links>
  </file>
  <file>
    <name>file.bat</name>
    <version>111</version>
    <checkedout>No</checkedout>
    <binary>Text</binary>
    <vss_path>$/Code/file.bat</vss_path>
    <original_path>C:\code\file.bat</original_path>
    <action>Labeled &apos;1.2.3.4&apos;</action>
    <date>27/09/2013 09:08:00</date>
    <comment></comment>
    <label>1.2.3.4</label>
    <label_comment></label_comment>
    <user>John</user>
    <shared_links>
      <shared_link>$/Beta_1</shared_link>
      <shared_link>$/Branches/New_Feature</shared_link>
    </shared_links>
  </file>
</root>

다음 출력 XML을 생성합니다.

<root>
  <file>
    <name>file.bat</name>
    <vss_path>$/Code/file.bat</vss_path>
    <shared_links>
      <shared_link>$/Beta_1</shared_link>
    </shared_links>
  </file>
</root>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

높이가 특정 값을 초과하는 자식 요소를 찾을 수 있습니까?

분류에서Dev

높이가 특정 값을 초과하는 자식 요소를 찾을 수 있습니까?

분류에서Dev

XPath : 하위 요소에서 특정 값을 가진 요소 선택

분류에서Dev

jquery를 사용하여 특정 값을 가진 버튼 요소를 선택하는 방법은 무엇입니까?

분류에서Dev

특정 자식 요소를 선택하는 XPath

분류에서Dev

특정 값을 가진 자식 노드없이 XML 노드를 선택하는 XPath?

분류에서Dev

XDocument를 사용하여 특정 속성을 가진 요소가 존재하는지 알아 내십니까?

분류에서Dev

jQuery를 사용하여 특정 값을 가진 데이터 속성으로 모든 요소를 선택하는 방법

분류에서Dev

특정 값을 가진 자식 요소를 찾고 바로 부모 노드를 삭제하는 방법은 무엇입니까?

분류에서Dev

jquery 부모 요소에 특정 텍스트가 있는지 확인한 다음 특정 기존 자식 요소 뒤에 자식 요소를 추가합니다.

분류에서Dev

XSLT를 사용하여 자식 요소를 추가하는 방법은 무엇입니까?

분류에서Dev

특정 수보다 큰 속성 값을 가진 모든 요소를 선택할 수 있습니까?

분류에서Dev

네임 스페이스가 지정된 xpath를 사용하여 속성 값을 기반으로 요소의 값을 제거하는 XSLT

분류에서Dev

XPath 표현식을 사용하여 다른 요소를 가져옵니다.

분류에서Dev

특정 유형의 자식이있는 부모 요소의 마지막 요소를 선택하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

정규식은 특정 속성을 가진 요소를 제외한 모든 요소와 일치합니다.

분류에서Dev

CSS 선택기-특정 요소와 형제가있는 부모 요소를 선택합니다.

분류에서Dev

XPATH : 특정 값을 가진 요소가 "phone"으로 가정하면 형제 값을 가져옵니다.

분류에서Dev

알 수없는 값을 가진 속성이있는 요소를 선택하기위한 XPath 술어

분류에서Dev

요소 값이 각 요소마다 다를 때 xpath를 사용하여 특정 요소 값을 어떻게 추출 할 수 있습니까?

분류에서Dev

행의 요소 중 R에 특정 값이있는 경우 "예"를 사용하여 DF에 열을 추가합니다.

분류에서Dev

C #을 사용하여 다단계 포함 된 MongoDB 문서에서만 해당 부모가있는 정확한 자식 요소를 가져 오는 방법

분류에서Dev

XPath를 사용하여 임계 값보다 큰 스타일 값을 가진 요소 가져 오기

분류에서Dev

특정 속성을 가진 단일 자식 요소를 기반으로 부모 노드를 가져옵니다.

분류에서Dev

특정 목록 요소를 선택하고 Python을 사용하여 CSV 행에 추가하는 방법

분류에서Dev

jQuery를 사용하여 HTML 선택 요소의 특정 값을 얻는 방법

분류에서Dev

JMESPATH 및 javascript를 사용하여 특정 이름 값을 가진 마지막 3 개 요소를 얻는 방법은 무엇입니까?

분류에서Dev

특정 문자 길이를 가진 모든 요소의 특정 위치에 0을 추가해야합니다.

분류에서Dev

여러 값을 가진 요소를 수정하는 Python ElementTree XML

Related 관련 기사

  1. 1

    높이가 특정 값을 초과하는 자식 요소를 찾을 수 있습니까?

  2. 2

    높이가 특정 값을 초과하는 자식 요소를 찾을 수 있습니까?

  3. 3

    XPath : 하위 요소에서 특정 값을 가진 요소 선택

  4. 4

    jquery를 사용하여 특정 값을 가진 버튼 요소를 선택하는 방법은 무엇입니까?

  5. 5

    특정 자식 요소를 선택하는 XPath

  6. 6

    특정 값을 가진 자식 노드없이 XML 노드를 선택하는 XPath?

  7. 7

    XDocument를 사용하여 특정 속성을 가진 요소가 존재하는지 알아 내십니까?

  8. 8

    jQuery를 사용하여 특정 값을 가진 데이터 속성으로 모든 요소를 선택하는 방법

  9. 9

    특정 값을 가진 자식 요소를 찾고 바로 부모 노드를 삭제하는 방법은 무엇입니까?

  10. 10

    jquery 부모 요소에 특정 텍스트가 있는지 확인한 다음 특정 기존 자식 요소 뒤에 자식 요소를 추가합니다.

  11. 11

    XSLT를 사용하여 자식 요소를 추가하는 방법은 무엇입니까?

  12. 12

    특정 수보다 큰 속성 값을 가진 모든 요소를 선택할 수 있습니까?

  13. 13

    네임 스페이스가 지정된 xpath를 사용하여 속성 값을 기반으로 요소의 값을 제거하는 XSLT

  14. 14

    XPath 표현식을 사용하여 다른 요소를 가져옵니다.

  15. 15

    특정 유형의 자식이있는 부모 요소의 마지막 요소를 선택하는 가장 좋은 방법은 무엇입니까?

  16. 16

    정규식은 특정 속성을 가진 요소를 제외한 모든 요소와 일치합니다.

  17. 17

    CSS 선택기-특정 요소와 형제가있는 부모 요소를 선택합니다.

  18. 18

    XPATH : 특정 값을 가진 요소가 "phone"으로 가정하면 형제 값을 가져옵니다.

  19. 19

    알 수없는 값을 가진 속성이있는 요소를 선택하기위한 XPath 술어

  20. 20

    요소 값이 각 요소마다 다를 때 xpath를 사용하여 특정 요소 값을 어떻게 추출 할 수 있습니까?

  21. 21

    행의 요소 중 R에 특정 값이있는 경우 "예"를 사용하여 DF에 열을 추가합니다.

  22. 22

    C #을 사용하여 다단계 포함 된 MongoDB 문서에서만 해당 부모가있는 정확한 자식 요소를 가져 오는 방법

  23. 23

    XPath를 사용하여 임계 값보다 큰 스타일 값을 가진 요소 가져 오기

  24. 24

    특정 속성을 가진 단일 자식 요소를 기반으로 부모 노드를 가져옵니다.

  25. 25

    특정 목록 요소를 선택하고 Python을 사용하여 CSV 행에 추가하는 방법

  26. 26

    jQuery를 사용하여 HTML 선택 요소의 특정 값을 얻는 방법

  27. 27

    JMESPATH 및 javascript를 사용하여 특정 이름 값을 가진 마지막 3 개 요소를 얻는 방법은 무엇입니까?

  28. 28

    특정 문자 길이를 가진 모든 요소의 특정 위치에 0을 추가해야합니다.

  29. 29

    여러 값을 가진 요소를 수정하는 Python ElementTree XML

뜨겁다태그

보관