首页 > 解决方案 > XSLT 不会匹配空的 XML 元素

问题描述

我用 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>

由于从 SGML 进行的预转换,这发生在文档的几个具有空 XML 元素的区域中。有谁知道为什么 XSL 模板会忽略这些元素以及如何从 XSLT 的角度绕过它?

标签: c#xmlxslt

解决方案


推荐阅读