У меня есть много таблиц стилей XSLT, которые преобразуют XML в файл CSV.
Используемые файлы XML генерируются на основе имен столбцов базы данных, которые раньше автоматически преобразовывались в UPPERCASE при создании XML - что уже невозможно сделать (мы не используем TSQL-FOR XML для построения XML). Имена столбцов, как правило, представляют собой смесь прописных и строчных букв.
Поскольку все таблицы стилей в настоящее время ссылаются на имена столбцов в верхнем регистре, запросы XPath не выполняются.
Вместо того, чтобы просматривать ВСЕ таблицы стилей XSL и вручную изменять запросы XPath на случай имен столбцов базы данных - что заняло бы большую часть этого года (!)
Есть ли способ преобразовать все имена тегов XML в верхний регистр, чтобы вы могли использовать их в документе?
Любая помощь очень ценится!
Спасибо!
Andrew
Пример:
Ниже будет создан CSV-файл с правами около строк, но без каких-либо данных, так как xslt ищет «STRNAME», когда он хранится в XML как «strName»
мой XML:
<XMLWRAPPER>
<STAFFTABLE>
<ROW>
<strName>Andrew</strName>
<strSurname>Smith</strSurname>
<intuserType>1</intUserType>
</ROW>
<ROW>
<strName>Jackie</strName>
<strSurname>collins</strSurname>
<intuserType>2</intUserType>
</ROW>
</STAFFTABLE>
</XMLWRAPPER>
и xslt:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" omit-xml-declaration="yes"/>
<xsl:template match="/">"First Name","Surname","User type"<xsl:text>
</xsl:text>
<xsl:for-each select="/XMLWRAPPER/STAFFTABLE/ROW">
<xsl:value-of select="STRNAME"/>,<xsl:value-of select="STRSURNAME"/>,<xsl:value-of select="INTUSERTYPE"/><xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>