使用 XSLT 检查 XML 文档是否为空(即根没有子节点)

Check if XML document is empty (that the root has no child nodes) using XSLT

我有一份 XML 文件。在这种情况下,它是空的:

<Converting/>

我想在 XML 文档为空时抛出异常,并且我使用的是 XSLT-1.0。我想像

<xsl:template match="root[not(*)]"/>

但是,这对我来说似乎行不通。有什么想法吗?

亲切的问候

编辑:我想在模板中创建它,所以我不能使用模板

写一个匹配根元素的模板,然后在这个模板中计数子节点。如果计数为 0,则将文本写入输出或抛出异常。

方法一

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text"/>
    <xsl:template match="/*">
        <xsl:if test="count(./*) = 0">
            <xsl:text>doc is empty</xsl:text>
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>

方法二

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text"/>
    <xsl:template match="/*">
        <xsl:if test="count(./*) = 0">
            <xsl:message terminate="yes">doc is empty</xsl:message>
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>