Мне нужно получить доступ к атрибуту тега, который содержит несколько слоев под текущим тегом.Доступ к атрибуту из вложенного тега XSLT
Например: Отрывок из XML выглядит следующим образом
<Content version="Title" action="add">
<ProgramContent>
<ContentMetaData>
<ContentId>
<HouseNumber>558960</HouseNumber>
<AlternateId idType="SeriesId" authoritativeSource="BCM">19714</AlternateId>
<AlternateId idType="EntityId" authoritativeSource="BCM">550133</AlternateId>
</ContentId>
</ContentMetaData>
</ProgramContent>
</Content>
и мой код в настоящее время выглядит следующим образом:
<xsl:for-each select="ns0:BxfMessage/ns0:BxfData/ns0:Content">
<xsl:if test="string(@version)= 'Title'">
<xsl:if test="string(//AlternateId[@idType ='SeriesId'])">
<test>hey</test>
</xsl:if>
</xsl:if>
</xsl:for-each>
мне нужно сделать для-каждого цикла на содержание тег, чтобы проверить все из них, но затем внутри этого цикла для каждого цикла я хочу продолжить работу, если атрибут тегов AlternateID не содержит serialId. Поэтому, если любой из них - serialId, я хочу закончить оператор if. Как мне это сделать? Как вы можете видеть, я попробовал оператор if, который должен проверить, равен ли атрибут idType SeriesId, но он терпит неудачу и ничего не возвращает, я что-то делаю неправильно?
Приветствия
Да, хотя это должно быть «.//», а не «//», потому что вы хотите, чтобы потомки контекстного узла, а не узлы в любом месте дерева. –