#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 прав — вызов атрибутов элемента, имени или значения очень сбивает с толку.