한 노드에서 다른 노드로 xsl 요소 복사

Ashok.N

한 노드에서 다른 노드로 요소를 복사하고 싶습니다. 예를 들어, 내 입력 xml은 다음과 같습니다.

<?xml version="1.0" encoding="UTF-8"?>
<Institutions>
   <Schools>
      <schoolOne>schoolOne</schoolOne>
      <scholTwo>scholTwo</scholTwo>
   </Schools>
   <Colleges>
      <CollegeOne>CollegeOne</CollegeOne>
      <CollegeTwo>CollegeTwo</CollegeTwo>
   </Colleges>
</Institutions>

노드 <CollegeTwo>CollegeTwo</CollegeTwo>아래 로 이동하고 싶습니다 <Schools>. 즉, 내 출력 xml은 다음과 같습니다.

<?xml version="1.0" encoding="UTF-8"?>
<Institutions>
   <Schools>
      <schoolOne>schoolOne</schoolOne>
      <scholTwo>scholTwo</scholTwo>
      <CollegeTwo>CollegeTwo</CollegeTwo>
   </Schools>
   <Colleges>
      <CollegeOne>CollegeOne</CollegeOne>
      <CollegeTwo>CollegeTwo</CollegeTwo>
   </Colleges>
</Institutions>

이를 달성하는 데 도움을 주시면 감사하겠습니다. 미리 감사드립니다.

다음 코드로 시도했지만 작동하지 않습니다.

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
   <xsl:template match="@* | node()">
      <xsl:copy>
         <xsl:apply-templates select="@* | node()" />
      </xsl:copy>
   </xsl:template>
   <xsl:template match="/">
      <xsl:copy>
         <xsl:apply-templates select="//Colleges/CollegeTwo" />
      </xsl:copy>
   </xsl:template>
</xsl:stylesheet>
팀 C

신원 변환을 포함하여 올바른 방향으로 시작했습니다.

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

그 자체로 노드를 그대로 복사하므로 변경하려는 노드에 대한 템플릿 만 작성하면됩니다 (XSLT는 특정 요소와 일치하는 템플릿에 우선 순위를 부여합니다).

귀하의 경우에는 Schools 요소에 새 하위 항목을 추가하고 싶으 므로이 요소와 일치하도록 두 번째 템플릿을 변경해야합니다 ( /현재와 ​​일치하도록 설정하면 문서 노드와 일치하지만이 경우 원하는 항목이 아닙니다). ).

 <xsl:template match="Schools">

이미 CollegeTwo 요소 를 복사하는 코드가 있지만 이 시점에서 Schools 의 기존 자식 노드 도 복사 되는지 확인해야합니다 . ( xsl : copy 는 현재 노드를 복사 하지만 그 속성이나 자식은 복사 하지 않습니다).

이 XSLT 시도

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

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

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

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

XLST : 한 자식 노드에서 다른 자식 노드로 ID 복사

분류에서Dev

한 URL에서 다른 URL로 XSL 피드 복사

분류에서Dev

Neo4J-한 노드에서 다른 노드로 모든 관계 복사 (C # 래퍼)

분류에서Dev

xslt를 사용하여 서로 다른 복잡한 요소의 서로 다른 두 노드의 값을 곱하고 합하는 방법은 무엇입니까?

분류에서Dev

서로 다른 HTML 요소에 두 개의 동일한 노드 추가

분류에서Dev

노드에서 한 번 사용 된 모든 XML 요소를 반환합니다.

분류에서Dev

한 노드에서 다른 노드로의 여러 관계

분류에서Dev

다른 노드에서 관계 복사

분류에서Dev

동일한 부모 노드에서 다른 접두사로 하위 노드를 만들 수 없습니다.

분류에서Dev

반복 노드에서 노드의 값을 다른 노드로 복사하는 XSLT

분류에서Dev

JavaFX-사용자가 한 노드에서 다른 노드로 마우스를 끌 때 알림?

분류에서Dev

xquery 한 요소에서 다른 요소로 텍스트 값 복사

분류에서Dev

xsl 2.0을 사용하여 하나의 XML에서 다른 XML로 요소 복사

분류에서Dev

조상의 데이터를 사용하여 선택한 노드의 자식 요소를 삽입하려면 XSL 변환이 필요합니다.

분류에서Dev

XSL은 손자 노드 값을 요소 속성 값으로 변환합니다.

분류에서Dev

한 노드를 다른 노드와 비교하는 xsl 상호 참조

분류에서Dev

한 노드를 다른 노드와 비교하는 xsl 상호 참조

분류에서Dev

모든 노드를 정확히 한 번만 사용하여 소스 노드에서 끝 노드로 경로를 만드는 알고리즘

분류에서Dev

'xsl : copy-of'는 노드를 복사하지 않습니다.

분류에서Dev

xslt를 사용하여 xml 노드를 한 위치에 다른 위치로 복사하십시오.

분류에서Dev

다른 부모의 노드 값을 사용하여 XSL 계산

분류에서Dev

노드 서버 스로틀 링에 대한 반복적 인 AJAX 요청 (Express / jQuery)

분류에서Dev

XPath : 동일한 노드에서 값이 다른 값보다 낮은 경우 요소 만 선택

분류에서Dev

인접 행렬을 사용하여 한 노드에서 다른 노드로의 모든 경로를 어떻게 확인할 수 있습니까?

분류에서Dev

다른 어노테이션으로 어노테이션이있는 어노테이션으로 어노테이션 된 메소드에 대한 Aspect

분류에서Dev

Drupal 7에서 다른 노드 유형의 필드를 내 양식 요소 유형으로 정의하고 사용합니다.

분류에서Dev

<xsl : sort>를 사용하여 노드 값을 기준으로 XML을 정렬하고 요소 이름 문제를 변경합니다.

분류에서Dev

한 요소에서 다른 요소로 자바 스크립트 계산 스타일 설정 / 복사

분류에서Dev

노드 값을 기반으로하는 XSL 필터 요소

Related 관련 기사

  1. 1

    XLST : 한 자식 노드에서 다른 자식 노드로 ID 복사

  2. 2

    한 URL에서 다른 URL로 XSL 피드 복사

  3. 3

    Neo4J-한 노드에서 다른 노드로 모든 관계 복사 (C # 래퍼)

  4. 4

    xslt를 사용하여 서로 다른 복잡한 요소의 서로 다른 두 노드의 값을 곱하고 합하는 방법은 무엇입니까?

  5. 5

    서로 다른 HTML 요소에 두 개의 동일한 노드 추가

  6. 6

    노드에서 한 번 사용 된 모든 XML 요소를 반환합니다.

  7. 7

    한 노드에서 다른 노드로의 여러 관계

  8. 8

    다른 노드에서 관계 복사

  9. 9

    동일한 부모 노드에서 다른 접두사로 하위 노드를 만들 수 없습니다.

  10. 10

    반복 노드에서 노드의 값을 다른 노드로 복사하는 XSLT

  11. 11

    JavaFX-사용자가 한 노드에서 다른 노드로 마우스를 끌 때 알림?

  12. 12

    xquery 한 요소에서 다른 요소로 텍스트 값 복사

  13. 13

    xsl 2.0을 사용하여 하나의 XML에서 다른 XML로 요소 복사

  14. 14

    조상의 데이터를 사용하여 선택한 노드의 자식 요소를 삽입하려면 XSL 변환이 필요합니다.

  15. 15

    XSL은 손자 노드 값을 요소 속성 값으로 변환합니다.

  16. 16

    한 노드를 다른 노드와 비교하는 xsl 상호 참조

  17. 17

    한 노드를 다른 노드와 비교하는 xsl 상호 참조

  18. 18

    모든 노드를 정확히 한 번만 사용하여 소스 노드에서 끝 노드로 경로를 만드는 알고리즘

  19. 19

    'xsl : copy-of'는 노드를 복사하지 않습니다.

  20. 20

    xslt를 사용하여 xml 노드를 한 위치에 다른 위치로 복사하십시오.

  21. 21

    다른 부모의 노드 값을 사용하여 XSL 계산

  22. 22

    노드 서버 스로틀 링에 대한 반복적 인 AJAX 요청 (Express / jQuery)

  23. 23

    XPath : 동일한 노드에서 값이 다른 값보다 낮은 경우 요소 만 선택

  24. 24

    인접 행렬을 사용하여 한 노드에서 다른 노드로의 모든 경로를 어떻게 확인할 수 있습니까?

  25. 25

    다른 어노테이션으로 어노테이션이있는 어노테이션으로 어노테이션 된 메소드에 대한 Aspect

  26. 26

    Drupal 7에서 다른 노드 유형의 필드를 내 양식 요소 유형으로 정의하고 사용합니다.

  27. 27

    <xsl : sort>를 사용하여 노드 값을 기준으로 XML을 정렬하고 요소 이름 문제를 변경합니다.

  28. 28

    한 요소에서 다른 요소로 자바 스크립트 계산 스타일 설정 / 복사

  29. 29

    노드 값을 기반으로하는 XSL 필터 요소

뜨겁다태그

보관