XSL을 처음 접했을 때 - 새 기능을 용서하십시오.xsl : key를 사용하여 일치하는 하위 항목의 속성 찾기
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xalan="http://xml.apache.org/xalan"
version="2.0">
<xsl:output indent="yes" xalan:indent-amount="5" />
<xsl:template match="text()" />
<xsl:key name="glossterm-lookup-key" match="glossentry/@id" use="glossentry/glossterm" />
<xsl:template match="glossary" >
<xsl:apply-templates />
</xsl:template>
<xsl:template match="glossterm">
Key: <xsl:value-of select="." />
Value: <xsl:value-of select="key('glossterm-lookup-key', .)" />
<xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>
:
<?xml version="1.0" encoding="ISO-8859-1"?>
<glossary>
<glossdiv id='glossdiv-0'>
<title>0</title>
<glossentry id='dev-null'>
<glossterm>/dev/null</glossterm>
<glossdef>
snip...
<glossterm>bit bucket</glossterm>
</glossdef>
</glossentry>
<glossentry id='me'>
<glossterm>/me</glossterm>
<glossdef>
snip...
<glossterm>/dev/null</glossterm>
</glossdef>
</glossentry>
</glossdiv>
</glossary>
이 내가 작업했던 테스트 XSL은 다음과 같습니다
나는 (이 실제로 Jargon File의 DocBook으로 양식을 크게 냈다입니다) 입력 XML 문서가
내 목표는 <glossterm>
요소를 발견 할 때마다 을 glossterm/text()
으로 지정하고 싶습니다. 예를 들어, <glossterm>/dev/null</glossterm>
을 찾으면 dev-null
을 받고 싶습니다.
저는 glossdef에있는 glossterms에만 관심이 있습니다.하지만 모든 것들을 위해 xsl : templates를 사용하고 있습니다. 테스트를 위해서 모든 glossterms에서 작업하고 있습니다.
나는 별도의 조회 문서를 작성하고 XML.com: Reading Multiple Input Documents에 설명 된 방법을 사용했지만 그 행운은 없었습니다.
힌트가 있습니까?
감사합니다! 나는 실제로 이와 비슷한 것을 시도했다. 나는 올바른 '사용'키를 사용하지 않고 있다고 생각한다. 도움을 감사하십시오. – Cooper