XSLT — Выбор определенных атрибутов из списка атрибутов

#xml #xslt

#xml #xslt

Вопрос:

Я создавал XSLT, где XML преобразуется из одной структуры в другую. Но я застрял в одной точке, где я должен выбрать определенный атрибут из списка атрибутов. Я предоставлю входной XML-файл и желаемый выходной XML-файл ниже. Кроме того, я выделю, где мне нужна помощь с (XSLT)

Введите XML:

 <Names>

<Attributes>

<Name>FirstName</Name>

<Value>Bharath<Value/>

</Attributes>

<Attributes>

<Name>LastName</Name>

<Value>Srinivas<Value/>

</Attributes>


<Attributes>

<Name>MiddleName</Name>

<Value>T</Value>

</Attributes>

</Names>
  

Желаемый выходной XML:

 <Names>

<Attributes>

<Name>FirstName</Name>

<Value>Bharath<Value/>

</Attributes>


<Attributes>

<Name>MiddleName</Name>

<Value>T</Value>

</Attributes>

</Names>
  

Итак, я просто хочу знать, какой элемент xsl будет использоваться в таких случаях, когда будут выбраны 2 из 3 атрибутов.
Заранее спасибо за решение!!

Комментарии:

1. Пожалуйста, задайте конкретный вопрос о трудностях, с которыми вы столкнулись при попытке выполнить это. В противном случае это выглядит так, как будто вы просто ищете кого-то, кто сделает вашу работу за вас.

2. @michael.hor257k Достаточно справедливо. Проблема в том, что я не знаю, какой элемент xsl использовать для выбора 2 из 3 атрибутов из приведенного выше входного файла XML

3. Вы назвали элемент «Атрибуты»? В xml вы можете назвать элемент как угодно, но называть элемент «Атрибутами» действительно вводит в заблуждение. «Атрибут» — это свойство элемента. Например, <имя пользователя=’Только для серфинга’/> , @name является атрибутом элемента с именем «person».

Ответ №1:

При обработке элемента ‘Attributes’ вам необходимо проверить значение элемента ‘Name’. Если значение не является ‘Lastname’, скопируйте элемент.

     <xsl:template match="Attributes">
        <xsl:if test="Name != 'Lastname'">
            <xsl:copy-of select="." />
        </xsl:if>
    </xsl:template>
  

Вам нужно будет включить свой XSL в свой вопрос. @William прав — вызов атрибутов элемента, имени или значения очень сбивает с толку.