2012-12-13 3 views
2

XML을 SVG로 변환하는 데 XSLT를 사용하고 있습니다. 왼쪽에 하나의 값이 있고 오른쪽에 가로 막 대형 차트 값이있는 가로 막 대형 차트를 만들고 싶습니다.XSLT를 사용하여 XML에서 SVG 막 대형 차트 만들기

<value1 name="something"> 
    <value2>13</value2> 
</value1> 
<value1 name="something else"> 
    <value2>45</value2> 
</value1> 

을 그리고 이것은 내가 값 2에서 수평 막대 차트를 생성, 지금까지 무엇을 가지고 있습니다 : XML은 다음과 같습니다.

<xsl:template match="/" mode="svg"> 
    <svg width="500px" height="500px" xmlns="http://www.w3.org/2000/svg"> 
     <g id="bar" transform="translate(50,50) rotate(90 90 90)"> 
     <xsl:for-each select=".../value1"> 
     <xsl:variable name="val" select="value2"/> 
     <rect x="{position()*25}" y="-{$val*1.5}" height="{$val*1.5}" width="15" style="fill:{@fill};"/> 
     <text x="{position()*25 + 7.5}" y="0" style="font-family:arial;text-anchor:middle;baseline-shift:-15;"> 
     </text> 
    </xsl:for-each> 
    </g> 
</svg> 

내가 함께 텍스트를 얻고 차트되는 데 문제

. 내가 잘못 생각하고 있니? 출력 결과는 다음과 같습니다.

value1  bar chart value2 
value1  longer bar chart value2 

정말 도움이 되었기 때문에 정말 고맙습니다. 예를 들면 다음과 같은 SVG 막대 차트를 생성하는

+2

귀하의 질문이 막대 그래프를 표시하기 위해 올바른 SVG를 디자인하는지 또는 XSLT를 사용하여 입력으로부터 특정 SVG를 작성하는지 여부는 명확하지 않습니다. 따라서 XML 입력을 위해 생성하고자하는 SVG를 알고 있으면 SVG를 게시하고 XSLT를 작성하여 작성하는 데 도움을 줄 수 있다면 명확히하십시오. –

+0

나는 마틴에 동의한다. 당신의 질문은 최소한 두 개의 주제 영역이 혼합되어있다. 저는 두 가지 문제에 관해 많은 노력을 기울였습니다. 방탄, 유연성, 모듈 방식으로 XML 데이터를 소화 한 다음 매력적인 결과를 생성하는 것은 상당히 어려운 문제 성명서입니다. 입력, "나쁜 데이터", 자동 범위 지정 등. 행운을 빌어 요, 아나! 나는 당신이 묻고있는 것의 넓은 범위를 고려할 때 훨씬 더 구체적으로 논평 할 수 없다. – Dave

+0

문제가 제대로 텍스트를 바에 맞추고있는 것 같습니다. 먼저 SVG를 손으로 컴파일 한 다음 완전한 XML 소스 파일, 완전한 XSLT 및 원하는 출력을 제공하십시오. 하위 문제가있는 경우 별도 질문으로 질문하는 것이 좋습니다. –

답변

관련 문제