for-each 덕분에 일련의 노드를 통과하려고합니다.이 노드의 매개 변수가 거의 조건을 확인하지 않으면 변수에서 현재 노드를 선택하고 싶습니다. 문제는 실제 노드 자체가 아니라 노드에서 값을 선택하는 것 같습니다. 그리고 나중에이 변수를 노드 집합으로 사용할 수 있기를 바랍니다.XSL : 현재 노드를 선택하십시오.
XML ($ parameterFile) :
<?xml version="1.0" encoding="UTF-8"?>
<Cases>
<Case>
<Rule LineNumber="10" PartNumber="FT40X40"/>
<Template>
<Drawings>
test
</Drawings>
</Template>
</Case>
<Case>
<Rule LineNumber="10" PartNumber="FT40X46k"/>
<Template>
<Drawings>
test2
</Drawings>
</Template>
</Case>
XSLT :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
exclude-result-prefixes="xs"
version="2.0">
<xsl:variable name="GoodCase">
<xsl:for-each select="$parameterFile/Cases/Case">
<xsl:choose>
<xsl:when test="(Rule/@LineNumber = $markerNbLines) and
(Rule/@PartNumber = $markerPartNumber)">
<xsl:value-of select="current()"/>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</xsl:variable>
<xsl:for-each select="$parameterFile/$GoodCase/Template/Drawings">
test
</xsl:for-each>
출력이 예상 :
test
감사합니다!
[** 완전한 XSLT 스타일 시트, 올바른 형식의 XML **] (http://stackoverflow.com/help/mcve) 및 예상 출력 - XML 또는 텍스트 포함 - 설명이 아닙니다. –
스타일 시트가 버전 2.0을 선언하는 동안 질문에 XSLT 1.0 태그가 붙은 이유는 무엇입니까? –