0
XSLT를 사용하여 알파벳순으로 사용자를 XML 파일에서 정렬하려고합니다. 여기 XSLT - for 루프에서 사전 순으로 정렬
내가이 (가) XSLT 내가ROOT
의 모든
ROW
모든
DEPARTMENT
내 통해 반복하고있어 한마디로
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" />
<xsl:template match="ROOT">
<table>
<tbody>
<tr>
<td>
<strong>Users</strong>
</td>
</tr>
<tr>
<td>
<xsl:for-each select="ROW/GROUPS">
<xsl:if test="DEPARTMENT = 'Test 1'">
<xsl:sort select="../FULLNAME" />
<xsl:value-of select="../FULLNAME" />
<br />
</xsl:if>
</xsl:for-each>
</td>
</tr>
</tbody>
</table>
</xsl:template>
</xsl:stylesheet>
보고해야한다고 생각하는 방법을 XML 샘플
<ROOT>
<ROW>
<FULLNAME>Adam Low</FULLNAME>
<GROUPS>
<DEPARTMENT>Test 1</DEPARTMENT>
<DEPARTMENT>Test 2</DEPARTMENT>
</GROUPS>
</ROW>
<ROW>
<FULLNAME>Julie Nelson</FULLNAME>
<GROUPS>
<DEPARTMENT>Test 1</DEPARTMENT>
<DEPARTMENT>Test 2</DEPARTMENT>
</GROUPS>
</ROW>
<ROW>
<FULLNAME>Colin Low</FULLNAME>
<GROUPS>
<DEPARTMENT>Test 1</DEPARTMENT>
</GROUPS>
</ROW>
<ROW>
<FULLNAME>Bobby Low</FULLNAME>
<GROUPS>
<DEPARTMENT>Test 1</DEPARTMENT>
</GROUPS>
</ROW>
</ROOT>
입니다 그리고 여기 GROUPS
노드를 '테스트 1'에서 어느 지점에서 높이를 노드까지 끌어 올리고 <TD>
에 쓸 수 있습니다. 모든 값을 알파벳순으로 정렬하고 싶습니다. <TD>
에 넣으십시오. 현재 내가 가지고있는 곳은 <xsl:sort select="../FULLNAME" />
입니다. 당신은 술어
<xsl:for-each select="ROW/GROUPS[DEPARTMENT = 'Test 1']">
<xsl:sort select="../FULLNAME" />
의 상태를 표현할 수
"작동하지 않습니다"라고 말하지 마십시오. 어떻게 실패하는지 알려주십시오. –
@MichaelKay 글을 쓰는 순간 Michael이 프로세서가 던지는 오류 메시지를 이해하지 못했습니다. 질문을 게시하기 전에 조사를 해본 결과, 시간이 너무 짧았습니다. 코드 위에서 제조 하였다 오류였다 "SaxonCE.StandardErrorListener 11 : 29 : 스타일/XSL : 25.549 심각/XSL에서 에러 템플릿/표/TBODY/TR [2]/TD/XSL : 대 -each/xsl : if/xsl : http://fiddle.frameless.io/에서 정렬하십시오. XTSE0010 : xsl : if 요소에 xsl : sort 요소가 없어야합니다. " 리플렉션에서 지금 메시지를 이해합니다. 당시 XSL에 익숙하지 않았기 때문에 많은 도움을 얻지 못했습니다. –
일반적인 문제입니다. 사람들은 오류 메시지를 이해하지 못하므로 게시하지 않습니다. 아무도 그 사실을 이해하지 못할 것이라고 상상하기 때문입니다. 오류 메시지는 정확히 무엇이 잘못되었는지를 표시합니다. xsl : sort가 잘못 배치되었습니다. 하지만 두 가지 다른 클라이언트 측 XSLT 프로세서 (Saxon-CE 및 Frameless)도 언급하고 있습니다. 어느 쪽도 적극적으로 유지 관리되지 않습니다. 더 나은 개발/테스트 환경 (예 : oXygen 또는 Stylus Studio)를 사용하면 더 나은 진단을 얻을 수 있습니다. –