2014-09-16 4 views
0

SSRS에서 막대 그래프 데이터를 XML로 내보내고 있으며 대개는보기에는 좋지만 어떤 경우에는/SeriesX/CategoryX/nodes를 얻습니다. 닷넷이 그것들을 데이터 테이블에 읽어 들일 때, dat은 3 개의 관련 테이블로 나뉘어집니다. 시리즈 0, 카테고리 0 및 값.XSLT 패턴 매칭 - 조상 제거

나는 제거해야/SeriesX/CategoryX /이에서 :

<My_Location_Chart> 
    <Series0> 
     <Category0> 
     <Value Y="0.1111" /> 
     </Category0> 
    </Series0> 
    <Series1> 
     <Category0> 
     <Value Y="0.2222" /> 
     </Category0> 
    </Series1> 
    <Series2> 
     <Category0> 
     <Value Y="0.3333" /> 
     </Category0> 
    </Series2> 
    </My_Location_Chart> 

는 그래서는 다음과 같습니다

:

<My_Location_Chart> 
     <Value Y="0.1111" /> 
     <Value Y="0.2222" /> 
     <Value Y="0.3333" /> 
    </My_Location_Chart> 

이 SeriesX 값을 사용하는 다른 차트는 내가 원하지 않는 그 (것)들을 망치기 위하여, 그러나 아무도는/SeriesX/CategoryX /의 본에 없다, 그래서 나는 그 패턴을 일치하고 싶다.

다음을 시도하여 카테고리 노드를 제거했습니다. 내가 필요 정확히 닫히지하지만 :

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

    <xsl:template match="*[not(descendant-or-self::*[text()[normalize-space()] | @*])]"/> 


    <xsl:template match="rep:Category0" > 
    <xsl:apply-templates select="*" /> 
    </xsl:template> 

위의이 작성

<My_Location_Chart> 
    <Series0> 
     <Value Y="0.1111" /> 
    </Series0> 
    <Series1> 
     <Value Y="0.2222" /> 
    </Series1> 
    <Series2> 
     <Value Y="0.3333" /> 
    </Series2> 
    </My_Location_Chart> 

어떤 제안을 환영합니다. XSLT에 익숙하지 않아서 쉬운 편입니다. 감사!

답변

0

어때요? 당신의 예에서와 같이이 "0.813084112149533"로 "0.711590296495957을"변경되지 않습니다

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

<xsl:template match="/My_Location_Chart"> 
    <xsl:copy> 
     <xsl:copy-of select="*/Category0/Value"/> 
    </xsl:copy> 
</xsl:template> 

</xsl:stylesheet> 

참고.

+0

나는 간단합니다. 나는 명확성을 위해 요소 값을 정리했다. 초보자로서이 글을 읽는 중이며 완벽하게 이해되는 것처럼 보이지만 출력을 전혀 변경하지는 않습니다. 왜 나에게 좋게 보이기 때문에 나는 그 이유를 알 수 없다. My_Location_Chart는 다른 트리 아래에 있으므로 기술적으로/Report/My_Location_Chart /입니다.하지만 괜찮을 것입니다 ... – BClaydon

+0

"* My_Location_Chart는 다른 트리에 있습니다 *"그런 다음이 작업은 작동하지 않습니다. 이는 'My_Location_Chart'가 루트 요소라고 가정하기 때문입니다 . ''를 또는''로 변경해보십시오. 그래도 작동하지 않으면 입력 샘플을 게시하십시오. –