Я работаю над небольшим XSLT-файлом, чтобы скопировать содержимое XML-файла и вычеркнуть объявление и корневой узел. Корневой узел имеет атрибут пространства имен.Скопировать содержимое XML-файла за исключением корневого узла и атрибута XSLT
В настоящее время я работаю, за исключением того, что теперь атрибут пространства имен теперь копируется в прямые дочерние узлы.
Вот мой файл XSLT до сих пор ничего не большой или сложной:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes" encoding="utf-8"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/*">
<xsl:apply-templates select="node()" />
</xsl:template>
</xsl:stylesheet>
Мой входной файл, как это:
<?xml version="1.0" encoding="UTF-8"?>
<Report_Data xmlns="examplenamespace">
<Report_Entry>
<Report_Date>
</Report_Date>
</Report_Entry>
<Report_Entry>
<Report_Date>
</Report_Date>
</Report_Entry>
<Report_Entry>
<Report_Date>
</Report_Date>
</Report_Entry>
</Report_Data>
Выход после XSLT, как это:
<Report_Entry xmlns="examplenamespace">
<Report_Date>
</Report_Date>
</Report_Entry>
<Report_Entry xmlns="examplenamespace">
<Report_Date>
</Report_Date>
</Report_Entry>
<Report_Entry xmlns="examplenamespace">
<Report_Date>
</Report_Date>
</Report_Entry>
Проблема заключается в том, что каждый тег Report_Entry получает этот атрибут пространства имен xml из корневого узла, который Я удалил.
В случае, если вам было интересно, я знаю, что выход XSLT плохо сформирован. Я добавляю объявление XML и другое имя корневого узла позже после преобразования XSLT.