У меня есть несколько узлов с тем же именем = 'UPC', и мне нужно найти значение текущего.
<XML>
<Attribute>
<Name>UPC</Name>
<Type>ComplexAttr</Type>
<Value>Testing</Value>
</Attribute>
<Attribute>
<Name>UPC</Name>
<Type>ComplexAttr</Type>
<Value>24a</Value>
</Attribute>
</XML>
Ожидаемый результат:
Следует извлечь значение из / Attribute / Value, где Name = 'UPC' и Type = 'ComplexAttr'.
При первом запуске = 'Тестирование' &
На втором прогоне значение должно быть = '24a'
Я пытаюсь использовать следующий код, но он не работает. Значение равно нулю.
<xsl:attribute name ="value">
<xsl:value-of select =".//Attribute[Type='ComplexAttr' and Name = 'UPC'][$i]/Value" />
</xsl:attribute>
где $ i - это переменная, которую я использую для циклического прохождения вышеупомянутого xml, и она увеличивается после каждого запуска. Тем не менее, это дает мне только то же значение « Testing » (которое является первым значением) при каждом запуске. Я проверил значение переменной. Он меняется каждый раз, когда проходит.
Я также пытался использовать current () и position (), как показано ниже, но в этом случае я получаю нулевое значение.
<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" />
Может кто-нибудь помочь мне с этим. Заранее спасибо.