그래서 XML에서 얻은 모든 고유 한 연도를 날짜에서 가져 와서 연도를 반복하여 해당 연도의 모든 결과를 얻습니다. 아래의 코드는 포인트까지만 작동하지만, 날짜 문자열의 일부 (고유 한 값을 얻기위한 4 개의 예기치 않은 계산자 등)로 고유 한 값을 얻는 방법을 찾을 수 없기 때문에 고유 한 전체 날짜 만 반환합니다. xpath 내에서 부분 문자열을 사용하는 것이 좋지만 시도한 모든 부분이 실패한 것 같습니다. 아무도 내가 여기서해야만하는 것을 알고 있습니까?xpath에서 xsl 하위 문자열
그래서 첫 번째 결과로 반환 할 값은 201220112010입니다.
아래 코드는 xslt 1.0을 사용하는 코드입니다. 나는
<!-- key at top of document -->
<xsl:key name="product" match="gdr:CompanyHistory/gdr:Event/gdr:Date" use="." />
<xsl:for-each select="gdr:CompanyHistory/gdr:Event/gdr:Date[generate-id()=generate-id(key('product',.)[1])]">
<strong>Year = <xsl:value-of select="substring(., 1, 4)"/></strong>
<ul>
<xsl:variable name="Date" select="."/>
<!-- foreach year get all results that have dates in that year. -->
<xsl:for-each select="gdr:CompanyHistory/gdr:Event[substring(gdr:Date, 1, 4) = $Date]">
<li><xsl:value-of select="gdr:Description" /> - <xsl:value-of select="gdr:Date" /></li>
</xsl:for-each>
</ul>
</xsl:for-each>
는 XML 나는이 감각의 일종을 만드는 희망
<CompanyHistory>
<Event>
<Date>2012-02-16T00:00:00</Date>
<Description>description</Description>
</Event>
<Event>
<Date>2012-02-01T00:00:00</Date>
<Description>description</Description>
</Event>
<Event>
<Date>2011-03-01T00:00:00</Date>
<Description>description</Description>
</Event>
<Event>
<Date>2011-04-01T00:00:00</Date>
<Description>description</Description>
</Event>
<Event>
<Date>2010-01-26T00:00:00</Date>
<Description>description</Description>
</Event>
<Event>
<Date>2010-01-16T00:00:00</Date>
<Description>description</Description>
</Event>
</CompanyHistory>
... 그래서 간단하게 뭔가를 누락 될 수 있습니다 XSLT 작업에 비교적 새로운 해요. 참고 : 전체 xpath를 더 읽기 쉽도록 줄였습니다.
코드의 문제로 변환되어 입력되는 스타일 시트와 그래서