2017-11-02 3 views
0

현재 내 필요에 맞게 XML을 변형하고 있습니다. 다음과 같이 XML 코드는 다음과 같습니다 가격을 일반의 경우 : ID = 12 나의 새로운 변환 된 XML은 일반 표시 할 때XSLT id가 일치하는 행 하나만 표시

<stk:stockPriceItem> 
<stk:stockPrice> 
<typ:id>11</typ:id> 
<typ:ids>sleva 3%</typ:ids> 
<typ:price>743.6</typ:price> 
</stk:stockPrice> 
<stk:stockPrice> 
<typ:id>9</typ:id> 
<typ:ids>V.I.P. 0%</typ:ids> 
<typ:price>613.3</typ:price> 
</stk:stockPrice> 
<stk:stockPrice> 
<typ:id>4</typ:id> 
<typ:ids>Velko 5%</typ:ids> 
<typ:price>552</typ:price> 
</stk:stockPrice> 
<stk:stockPrice> 
<typ:id>12</typ:id> 
<typ:ids>eshop</typ:ids> 
<typ:price>651.6</typ:price> 
</stk:stockPrice> 
<stk:stockPrice> 
<typ:id>5</typ:id> 
<typ:ids>Malo 10%</typ:ids> 
<typ:price>582.6</typ:price> 
</stk:stockPrice> 
<stk:stockPrice> 
<typ:id>1</typ:id> 
<typ:ids>Prodejní</typ:ids> 
<typ:price>766.6</typ:price> 
</stk:stockPrice> 
</stk:stockPriceItem> 

내가 출력을 필요로한다.

그래서 다음과 같이 나는 해결책을 찾을 수 없습니다로

<stk:stockPrice> 
<typ:price>1222</typ:price> 
</stk:stockPrice> 

어떤 도움이 많은 온라인 주시면 감사하겠습니다 내가 XSLT를 사용하여 꽤 뉴비입니다. 대단히 감사합니다.

+0

네임 스페이스가있을 때마다 항상 루트 태그를 포함하십시오. 보다 완벽한 XML을 게시하십시오. – Parfait

답변

0

당신은 다음과 같은 대상 요소를 얻기 위해 패턴으로 술어를 사용할 수 있습니다

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:stk="urn:stk" xmlns:typ="urn:typ" 
    exclude-result-prefixes="xs" 
    version="2.0"> 

    <xsl:output indent="yes"/> 

    <xsl:template match="stk:stockPriceItem"> 
     <xsl:apply-templates/> 
    </xsl:template> 

    <xsl:template match="stk:stockPrice[string(typ:id) eq '12']" priority="5"> 
     <xsl:copy> 
      <xsl:copy-of select="typ:price"/> 
     </xsl:copy> 
    </xsl:template> 

    <xsl:template match="node()"/> 

</xsl:stylesheet> 

[출력] 당신이 그들을 지정하지 않았기 때문에

<?xml version="1.0" encoding="UTF-8"?> 
<stk:stockPrice xmlns:stk="urn:stk" xmlns:typ="urn:typ"> 
    <typ:price>651.6</typ:price> 
</stk:stockPrice> 

참고 네임 스페이스 선언은 일시적 입력 XML 파일

0

나는 이것을 사용하여 나의 문제를 해결할 수 있었다.

<xsl:value-of select="stk:stockPrice[typ:id=12]/typ:price"/> 

감사합니다.