동일한 Name = 'UPC'를 가진 노드가 여러 개 있습니다. 현재 노드의 값을 찾아야합니다.xpath 현재 노드의 값을 찾습니다.
<XML>
<Attribute>
<Name>UPC</Name>
<Type>ComplexAttr</Type>
<Value>Testing</Value>
</Attribute>
<Attribute>
<Name>UPC</Name>
<Type>ComplexAttr</Type>
<Value>24a</Value>
</Attribute>
</XML>
예상 출력 : 그것은에서/속성/값 어디 이름 = 'UPC'및 유형 = 'ComplexAttr'값을 끌어해야한다. 첫 번째 실행에
은 = '테스트'제 2 회 실행에 & 값이 나는 다음과 같은 코드를 사용하려고 해요하지만이 작동하지 않습니다 = '24A'해야한다. 값은 null입니다.
<xsl:attribute name ="value">
<xsl:value-of select =".//Attribute[Type='ComplexAttr' and Name = 'UPC'][$i]/Value" />
</xsl:attribute>
곳 $ 내가 내가 위의 XML을 통해 루프를 사용하고 변수이며 각 실행 후 증가. 그러나 모든 실행에서 동일한 값 '테스트'(첫 번째 값임) 만 제공합니다. 변수의 값을 확인했습니다. 그것은 반복 할 때마다 변하고 있습니다.
나는 current()와 position()을 아래처럼 사용하려고 시도했지만,이 경우 null이 될 것이다.
<xsl:value-of select =".//Attribute[Type='ComplexAttr' and Name = 'UPC'][current()]/Value" />
<xsl:value-of select =".//Attribute[Type='ComplexAttr' and Name = 'UPC'][position() = $i]/Value" />
누군가 나를 도와 줄 수 있습니까? 미리 감사드립니다.
이 XML 샘플의 예상 출력은 얼마입니까? –
@Alejandro. 위의 예상 출력을 추가했습니다. 감사합니다 – JohnXsl
좋은 질문, +1. 설명 및 신속하고 한 줄짜리 XPath 표현 솔루션에 대한 내 대답을 참조하십시오. –