저는 xslt를 처음 사용합니다.이 문제는 절차 적 사고 방식에 신경을 쓰고 있습니다.xslt의 필드를 병합하고 이름을 바꿉니다.
나는 이름을 바꾸려는 경우가 있고, 경우에 따라 축약하고 싶은 정보가 있습니다. 이름 바꾸기는 처리 할 수 있지만 응축이 나를 걸고 있습니다. 나의 접근 방식은 모든것의 이름을 바꾸는 것이었고, 이름 바꾸기에서 중복이 생기면 중복을 제거하는 것이었다. 명확성을 위해 몇 가지 코드가 있습니다.
입력 :
<variables>
<var value="a-value"> a </var>
<var value="b-value"> b </var>
<var value="c-value"> c </var>
<var value="d-value"> d </var>
</variables>
원하는 출력 :
<variables>
<var value="new-a-value"> new-a </var>
<var value="new-b-and-c-value"> new-b-and-c </var>
<var value="new-d-value"> new-d </var>
</variables>
내 XSLT :
<xsl:for-each select="var">
<xsl:choose>
<xsl:when test="@value = 'a-value'">
<var value="new-a-value"> new-a </var>
</xsl:when>
<xsl:when test="@value = 'b-value'">
<var value="new-b-and-c-value"> new-b-and-c </var>
</xsl:when>
<xsl:when test="@value = 'c-value'">
<var value="new-b-and-c-value"> new-b-and-c </var>
</xsl:when>
<xsl:when test="@value = 'd-value'">
<var value="new-d-value"> new-d </var>
</xsl:when>
</xsl:choose>
</xsl:for-each>
나는 이름 변경 후 중복 용어를 제거 할. 나는 여기서 어디로 가야할지 모르겠다. 내 직감은 b 값 또는 c 값이 발견되거나 중복을 제거하는 중간 처리 된 xml을 통해 다른 반복을 실행할 때 어떤 종류의 체크를 설정하려고하지만 둘 중 한 방법이 xslt에서 실행 가능.
+1 좋은 대답. 나는 부정적인 것보다는 더 높은 우선 순위를 줄 것이다. –
@Alej :'[1]'템플릿에 더 높은 우선 순위를 부여하겠습니까? 빈 템플릿보다 우선 순위가 낮습니다. 처음에는 같은 템플릿에서 더 높은 우선 순위로 변경할 것을 의미한다고 생각했습니다. – LarsH
+1 좋은 접근 방식. – Flack