1. Для удаления любого пустого узла из XML вы можете использовать следующее:
<xsl:template match="*[not(node())]" />
2. Для удаления какого-либо определенного пустого узла, такого как Blocks:Block
, из XML вы можете использовать:
<xsl:template match="Blocks:Block[not(node())]" />
Примечание: Для использования выше, вам необходимо добавить пространство имен xmlns:Blocks="http://www.eclipse.org/papyrus/sysml/1.4/SysML/Blocks"
в ваше определение <xsl:stylesheet>
.
3. Для удаления таких атрибутов, как version и schemaLocation вверху, обновите ваш шаблон, как показано ниже:
<!-- Copy everything -->
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*[not(name() = 'xsi:schemaLocation') and not(name() = 'xmi:version')]"/>
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
См. Демонстрацию здесь: https://xsltfiddle.liberty -development.net / bnnZWu