#c# #xml #xslt
#c# #xml #xslt
Вопрос:
У меня есть эти данные в исходном XML:
<Firma ID_FIRMY="15" ROLE_FIRMY="O " KOD_FIRMY="Tomášov">
Это мой XSL:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8" indent="no"/>
<xsl:template match="root/Firma">
<MoneyData>
<xsl:copy-of select="@ID_FIRMY"/>
<xsl:copy-of select="@KOD_FIRMY"/>
</MoneyData>
</xsl:template>
</xsl:stylesheet>
Это мой вывод XML:
<?xml version="1.0" encoding="utf-8"?>
<MoneyData ID_FIRMY="15" KOD_FIRMY="Tomášov"/>
Но мне нужен этот вывод: (изменить имена ..)
<?xml version="1.0" encoding="utf-8"?>
<MoneyData KodAgendy="15" HospRokOd="Tomášov"/>
Как мне это сделать?
Ответ №1:
Напишите шаблоны для преобразования атрибутов:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8" indent="no"/>
<xsl:template match="root/Firma">
<MoneyData>
<xsl:apply-templates select="@* | node()"/>
</MoneyData>
</xsl:template>
<xsl:template match="Firma/@ID_FIRMY">
<xsl:attribute name="KodAgendy"><xsl:value-of select="."/></xsl:attribute>
</xsl:template>
<xsl:template match="Firma/@KOD_FIRMY">
<xsl:attribute name="HospRokOd"><xsl:value-of select="."/></xsl:attribute>
</xsl:template>
<xsl:template match="@ROLE_FIRMY"/>
</xsl:stylesheet>