У меня есть XML-файл, который является объединением двух меньших XML-файлов. Хотя каждый из двух файлов имеет разные закрывающие теги, оба имеют определенное поле с тем же именем, которое я хотел бы сортировать, используя только XSLT 1.0.XSL: Сортировка по гибридному файлу XML
Я создал следующие файлы XML/XSLT, чтобы продемонстрировать проблему.
желаемого выход: 1,2,3,4,5,6
Но фактическая выход является: 1,3,5,2,4,6
Другими словами, каждый суб-файл (<DataSet1>
и <DataSet2>
) сортируется правильно, но желательно результатом является правильный выбор файла в целом.
Как исправить эту проблему? (Обратите внимание, что я не могу изменить файл XML в любом случае ниже уровня <DataSet1>
и <DataSet2>
.)
<?xml version="1.0" encoding="UTF-8"?>
<xml-file>
<DataSet1>
<Table1>
<Rank>1</Rank>
</Table1>
<Table1>
<Rank>5</Rank>
</Table1>
<Table1>
<Rank>3</Rank>
</Table1>
</DataSet1>
<DataSet2>
<Table2>
<Rank>6</Rank>
</Table2>
<Table2>
<Rank>2</Rank>
</Table2>
<Table2>
<Rank>4</Rank>
</Table2>
</DataSet2>
</xml-file>
Вот файл XSLT Я использую:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
<xsl:template match="DataSet1|DataSet2">
<xsl:apply-templates>
<xsl:sort select="Rank" order="ascending" />
</xsl:apply-templates>
</xsl:template>
<xsl:template match="Table1">
<xsl:value-of select="Rank"/><br/>
</xsl:template>
<xsl:template match="Table2">
<xsl:value-of select="Rank"/><br/>
</xsl:template>
</xsl:stylesheet>
Не понимая свой вопрос здесь. Если вы не можете разделить каждый тег '', как вы ожидаете, что ваши таблицы будут отсортированы в соответствии с вашими критериями? Можете ли вы включить свой вывод как полный XML? –
http://stackoverflow.com/help/someone-answers –