2013-03-11 5 views
0

xsl 파일에서 "group by"기능을 사용하고 싶지만 오류가 발생하고 있습니다. xslt를 사용하여 요소 그룹화

내 코드입니다 :

<table xsl:version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<tr> 
<th>A</th> 
<th>B</th> 
</tr> 
<xsl:for-each-group select="Result/Record" group-by="AC_CPR"> 
<tr> 
    <td><xsl:value-of select="AC_CPR"/></td> 
    <td><xsl:value-of select='sum(//AC_LNA/Row/Column[2])'/></td> 
</tr> 

오류는이 하나

MSXML3.DLL 오류

"키워드 테이블 XSL을 포함 할 수 없습니다

'80004005' 각 그룹에 대해 ".

<Result> 
<Record code="033007"> 
<Name>demo</Name> 
<AC_CPR>02080</AC_CPR> 
<date>10/06/2009</date> 
<AC_LNA ncols="2"> 
<Row> 
<Column>000115</Column> 
<Column>9</Column> 
</Row> 
</AC_LNA> 
<AC_FSE>10/06/2009</AC_FSE> 
<AC_AV/> 
</Record> 
</Result> 
+0

정확히 어떤 응용 프로그램에서 오류가 발생합니까? XSLT 2.0을 사용하려면 Saxon 9 또는 AltovaXML 또는 XmlPrime과 같은 XSLT 2.0 프로세서를 사용해야합니다. –

+0

안녕하세요, 오류 : msxml3.dll 오류 '80004005' "키워드 표에 xsl : for-each-group을 포함 할 수 없습니다." –

+0

그래서이 프로세서가 없다면 내 서버에서 XSLT 2.0을 실행할 수없는 것처럼 보입니다. 그것은 xlst 1.0에서 할 수 있습니까? –

답변

0

는, 예를 들어 갖춘 완벽한 스타일 시트를 쓰기 :

XML은 이것이다 난 당신이 각 그룹 및 모든 노드의 전체 집합에 대한 합계를 짐작 한 sum를 들어

<xsl:stylesheet 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    version="1.0"> 

<xsl:key name="group" match="Result/Record" use="AC_CPR"/> 

<xsl:template match="Result"> 
<table> 
<tr> 
<th>A</th> 
<th>B</th> 
</tr> 
<xsl:for-each select="Record[generate-id() = generate-id(key('group', AC_CPR)[1])]"> 
<tr> 
    <td><xsl:value-of select="AC_CPR"/></td> 
    <td><xsl:value-of select="sum(key('group', AC_CPR)/AC_LNA/Row/Column[2])"/></td> 
</tr> 
</xsl:for-each> 
</table> 

</xsl:template> 

</xsl:stylesheet> 

.

+0

안녕 마틴, 내가 말하는 오류가 발생 : 스타일 시트에 문서 요소가 포함되어 있지 않습니다. 스타일 시트가 비어 있거나 잘 구성된 XML 문서가 아닐 수도 있습니다 ... –

+0

SO 편집기에서 코드를 입력하고 태그를 닫는 것을 잊었습니다. 편집하고 수정합니다. –

+0

완벽한! Martin 감사합니다. –

관련 문제