도달하지 못했다코드 나는 다음 XSL 코드가
<ROOT>
<MainNode>
<NAMES>
<NAME></NAME>
</NAMES>
</MainNode>
</ROOT>
어떤 이유가 될 수있다 : 나는 <body></body>
내 XML 구조 빈 HTML입니다 있나요?
도달하지 못했다코드 나는 다음 XSL 코드가
<ROOT>
<MainNode>
<NAMES>
<NAME></NAME>
</NAMES>
</MainNode>
</ROOT>
어떤 이유가 될 수있다 : 나는 <body></body>
내 XML 구조 빈 HTML입니다 있나요?
시도 : 문서 루트에서
<xsl:apply-templates select="//Name" />
또는 지정 노드 :
<xsl:apply-templates select="ROOT/MainNode/Names/Name" />
문제는 당신이 apply-templates
를 호출하는 범위로한다. 루트 템플릿에 있습니다. 즉, 현재 컨텍스트 (XML 내의 위치)가 루트 요소입니다. select
을 apply-templates
과 함께 사용하면 XPath는 현재 컨텍스트/위치를 기반으로합니다.
귀하의 경우 루트에있는 모든 NAME
요소에 템플릿을 적용하고 있습니다. 존재하지 않으므로 NAME
템플릿이 절대로 호출되지 않습니다. 이미 제안 된 것처럼, 다음은 구조, 맞춤법 가정 일을해야하고, 총액이 예제에서 올바른 :
<xsl:apply-templates select="ROOT/MainNode/NAMES/NAME" />
다른 방법으로는 절대 경로처럼 작동,이 XPath는 문서의 아무 곳에서 작동합니다 문서의 루트에서 시작 : 나는 ROOT/MainNode/이름/이름을 시도한
<xsl:apply-templates select="/ROOT/MainNode/NAMES/NAME" />
하지만 – Ksice
@Ksice 도움이되지 않았다 그런 – abatishchev
의 XPath는 대소 것을 기억 XPath는 (첫 번째 옵션을) 시도 민감한. 케이싱이 수정되면이 두 가지 해결책 모두 작동해야합니다. –