Google에서 답변을 찾으려고했지만 그 결과는 문자열을 대체하거나 하위 문자열을 대체하는 방법 중 하나입니다.하지만 제 질문은 약간 다릅니다. 들어오는 XSL 데이터를 바꾸거나 대체 할 수 있습니까?
내가 기존 XSL 템플릿이 말, 말 " 안녕하세요 세계" "데이터/기록/기록을"처리,하지만 난 안녕하세요 세계 수정할 수 없습니다, 그래서 내가 만드는 생각 해요 안녕하세요 - 세계에 전달하기 전에 각 레코드 내부의 데이터를 마사지/수정하는 래퍼 템플릿 ...이 방법이 있습니까?지금까지, 나는 중복 레코드를 필터링 할 함수를 작성하기 위해 관리했습니다, 나는 ... 새로운 하나 "/ * 데이터/기록"내부의 모든 레코드를 대체하는 생각
<xsl:variable name="/data/records/record">
<xsl:call-template name="get-unique-record">
<xsl:with-param name="records" select="/data/records/record"/>
</xsl:call-template>
</xsl:variable>
편집 : @LasrH, 빠른 답장을 보내 주셔서 감사합니다
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:call-template name="get-unique-record">
<xsl:with-param name="records" select="/data/records/record"/>
</xsl:call-template>
</xsl:template>
<!-- This function will filter out the given records and return a unique set of records -->
<xsl:key name="kField_ID" match="field[@name='ID']" use="."/>
<xsl:template name="get-unique-record">
<xsl:param name="records"/>
<xsl:for-each select="$records">
<xsl:variable name="record" select="."/>
<xsl:if test="$record//field[generate-id() = generate-id(key('kField_ID', .))]">
<xsl:copy-of select="$record"/>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
지금 ... 그것이 가능 뭔가를하는 것입니다. 기존의 "/"복사본을 만든 다음 모든/data/records/레코드를 필터링 된 것으로 바꾸는 방법이 있습니까?
EDIT2 : @LasrH, 나는 "데이터"노드를 수정하고 다시 작성하기 위해 몇 개의 템플릿을 만들었습니다. 노드 집합을 사용하여 기존 입력을 새 데이터로 입력을 "대체"할 수 있습니까?
<xsl:variable name="data">
<xsl:call-template name="rebuild-data-with-record">
<xsl:with-param name="records">
<xsl:copy-of select="$unique-records"></xsl:copy-of>
</xsl:with-param>
</xsl:call-template>
</xsl:variable>
그럼 더 아래로 난 노드 집합을 다음과 같이 사용하려고 :
<xsl:apply-templates select="exslt:node-set($data)/data"/>
하지만 중 하나를 던져 오류가없는 ... 그 일처럼 보이지 않는다.
"기능"보다는 "템플릿"을 사용하는 것처럼 보입니다. – LarsH
고정, 그렇지, 나는 C/Java 프로그래머 롤, 오직 XSL을 조사하기 시작했다. 나쁜 용어에 대해 유감스럽게 생각합니다. 텍스트를 업데이트했습니다. :) – codenamezero
문제 없습니다 ... 템플릿과 다른 XSLT의 함수가 있기 때문에 주로 문제가됩니다. – LarsH