XSLT를 사용하여 컨텐트 관리 시스템의 복잡한 XML 출력을 XHTML로 변환하고 있습니다. 나는 <xsl:apply-templates/>
을 사용하여 XML 입력에 의해 기술 된 것의 XHTML 조각을 얻습니다. 이 XML 입력은 여러 가지 XSLT 템플릿 요소로 처리 할 수있는 많은 사례를 설명하는 매우 복잡한 구조로되어 있습니다. 그리고 그 구조는 장래에 상당히 자주 바뀔 수 있습니다.XSLT 노드 집합 B를 노드 집합 A의 텍스트 노드 안의 탐지 된 위치에있는 다른 노드 집합 A에 삽입하십시오.
이전에는 변형 된 결과 조각이 XSLT 출력으로 직접 전송되었습니다. 이제 요구 사항이 바뀌었고 결과를 캡처 할 필요가 있습니다. 가끔 조각의 가치가있는 특정 위치에 다른 잘 구성된 XHTML 조각을 삽입하도록 수정해야합니다.
<xsl:apply-templates/>
은 변수 컨테이너에 캡처 된 일부 불투명 XHTML 조각을 생성했다고 가정합니다.
<xsl:variable name="snippet">
<xsl:call-template name="get-snippet" />
</xsl:variable>
요구가 $으로의 단부에있는 임의로 함유 기간 내에 삽입 될을 니펫 노드 집합하도록 말한다
<xsl:variable name="container">
<xsl:apply-templates />
</xsl:variable>
다음 변수 니펫에서 제 XHTML 단편 존재 $ container 값입니다. 두 변수의 XHTML 조각을 조각으로 유지하지 않으면 문제가되지 않습니다. 따라서 어느 변수의 문자열 값에서도 작동 할 수 없습니다.
<xsl:apply-templates/>
의 강력 함과 유연성을 잃지 않고 XSLT에서 해당 요구 사항을 충족 할 수있는 기회가 있습니까? $에 XHTML 조각을 가져 오는 중입니까?
은 BTW : 나는 이미 사용 $container
의 마지막 텍스트 노드를 액세스에 대해 알고 :
node-set($container)//child::text[last()]
을하지만 난 그 텍스트 노드의 중간에 삽입 뭔가를 얻을 수 놓친 나는 XSLT가에 대한 적절한 지원을 제공하기 위해 실패 고려 내가 뭘하고 싶은지.