Я добавляю два xml-файла вместе с помощью xslt, а затем этот результирующий XML-файл должен соответствовать схеме. Я могу добавить два файла xml вместе, но тогда результат должен иметь noNamespaceSchemaLocation = "file: ///osba.xsd" в качестве атрибута в корневом элементе.XSLT, Добавить атрибут в корневой узел результирующего xml-файла
Вот мой .xsl файл:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="ISO-8859-1" indent="yes" />
<xsl:variable name="with" select="'reception.xml'" />
<xsl:template match="@*|node()" >
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="bd">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
<xsl:variable name="info" select="document($with)/reception/bd[title=current()/title]/." />
<xsl:for-each select="$info/*">
<xsl:if test="name()!='title'">
<xsl:copy-of select="." />
</xsl:if>
</xsl:for-each>
</xsl:copy>
</xsl:template>
</xsl:transform>
Я хочу добавить что-то вроде:
<xsl:template match="/*" >
<xsl:attribute name="noNamespaceSchemaLocation"><![CDATA[file:///I:/IMY%20Project/XML%20Files/osba.xsd]]></xsl:attribute>
<xsl:apply-templates/>
Я не нашел способ, чтобы соответствовать, если текущий элемент является корневым , Я также думал о том, чтобы положить xsl: if test = "root" тип сделки в первом шаблоне xsl:.
Спасибо за любую помощь
Haha Большое спасибо! Работали как шарм –