2011-03-21 5 views
0

내가 좋아하는 XML 문서를 다음복사 XML 문서는

<root> 
    <record> 
     <element1>value1</element1> 
     <element2>value2</element2> 
     <element3>value3</element3> 
     <element4>value4</element4> 
     <element5>value5</element5> 
     <repeatingelement1>value 1.1</repeatingelement1> 
     <repeatingelement1>value 1.2</repeatingelement1> 
     <repeatingelement1>value 1.3</repeatingelement1> 
     <repeatingelement2>value 2.1</repeatingelement2> 
     <repeatingelement2>value 2.2</repeatingelement2> 
     <repeatingelement2>value 2.3</repeatingelement2> 
    </record> 
    <record> 
     <element1>a</element1> 
     <element2>b</element2> 
     <element3>c</element3> 
     <element4>d</element4> 
     <element5>e</element5> 
     <repeatingelement1>a 1.1</repeatingelement1> 
     <repeatingelement1>a 1.2</repeatingelement1> 
     <repeatingelement1>a 1.3</repeatingelement1> 
     <repeatingelement2>b 2.1</repeatingelement2> 
     <repeatingelement2>b 2.2</repeatingelement2> 
     <repeatingelement2>b 2.3</repeatingelement2> 
    </record> 
    <record> 
     <element1>value1</element1> 
     <element2>value2</element2> 
     <element3>value3</element3> 
     <element4>value4</element4> 
     <element5>value5</element5> 
     <repeatingelement1>value 1.1</repeatingelement1> 
     <repeatingelement1>value 1.2</repeatingelement1> 
     <repeatingelement1>value 1.3</repeatingelement1> 
     <repeatingelement2>value 2.1</repeatingelement2> 
     <repeatingelement2>value 2.2</repeatingelement2> 
     <repeatingelement2>value 2.3</repeatingelement2> 
    </record> 
</root> 

내가 요소 말의 블랙리스트하지 않고는 XML의 사본을 얻을 수 있도록하려면 element3repeatingelement2없이

예. 출력은 다음과 같습니다.

<root> 
    <record> 
     <element1>value1</element1> 
     <element2>value2</element2> 
     <element4>value4</element4> 
     <element5>value5</element5> 
     <repeatingelement1>value 1.1</repeatingelement1> 
     <repeatingelement1>value 1.2</repeatingelement1> 
     <repeatingelement1>value 1.3</repeatingelement1> 
    </record> 
    <record> 
     <element1>a</element1> 
     <element2>b</element2> 
     <element4>d</element4> 
     <element5>e</element5> 
     <repeatingelement1>a 1.1</repeatingelement1> 
     <repeatingelement1>a 1.2</repeatingelement1> 
     <repeatingelement1>a 1.3</repeatingelement1> 
    </record> 
    <record> 
     <element1>value1</element1> 
     <element2>value2</element2> 
     <element4>value4</element4> 
     <element5>value5</element5> 
     <repeatingelement1>value 1.1</repeatingelement1> 
     <repeatingelement1>value 1.2</repeatingelement1> 
     <repeatingelement1>value 1.3</repeatingelement1> 
    </record> 
</root> 

이 버전 1.0의 Xsl을 이상적으로 보유하고있는 사람이 있습니까? 내가 그것을 할 수있는 유일한 방법은 모든 요소에 대한 XSLT를 작성하고 싶지 않은 요소에 대해 XSL을 생략하는 것입니다.

+1

이 질문의 일종 할 필요가 - 당신이 * 오늘 * :) –

+0

내가 좋은 스캔을했던이 질문을 두 번째 사람이야을 통해 비슷한 질문 .. 많이 요청하기 전에. .하지만 내가 원한 것은 아니야 ... – CraftyFella

답변

6

놀랍도록 쉬운 방법입니다. ID 템플릿을 사용하여 스타일 시트를 만들고 제거하려는 요소에 대해 출력없이 재정의하십시오. 이처럼 :

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="element3|repeatingelement2" /> 

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

우수. 감사 – CraftyFella

관련 문제