Я написал программу на C #, которая преобразует одну схему документа в другую, используя XSLT.Файл для преобразования фактически начинается как SGML, который я сначала преобразовываю в XML, готовый для запуска таблицы стилей XSL.Результат этого преобразования означает, что когда у меня есть элементы, такие как <noclose>
в файле SGML (что вполне законно), после предварительного преобразования в XML они приводят к <noclose></noclose>
.Т.е. пустые элементы.
Кажется, что когда мой XSL выполняется над документом, эти пустые элементы полностью пропускаются, несмотря на наличие шаблона для их сопоставления:
<xsl:template match="noclose">
<xsl:element name="newElement">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
Это происходит впара областей документа, которые имеют пустые элементы XML в результате предварительного преобразования из SGML.Кто-нибудь знает, почему шаблон XSL игнорирует элементы и как обойти его с точки зрения XSLT, пожалуйста?