如何在节点xslt中测试空字符串

如何在节点xslt中测试空字符串,xslt,Xslt,xml的原始来源 <SubdivisionType> <ID>null</ID> <Name>null</Name> <Parent i:nil="true"/> </SubdivisionType> 无效的 无效的 字符串“null”由E4X生成。我必须检查SubjectionType/ID是否包含另一个值,然后选择“null”,然后跳过所有Subje

xml的原始来源

<SubdivisionType>
         <ID>null</ID>
         <Name>null</Name>
         <Parent i:nil="true"/>
</SubdivisionType>

无效的
无效的
字符串“null”由E4X生成。我必须检查SubjectionType/ID是否包含另一个值,然后选择“null”,然后跳过所有SubjectionType标记

我是这样做的

<xsl:if test="SubdivisionType/ID[text()!=null]" >
   ...
</xsl:if>

...

我无法理解xlst(saxon)如何处理字符串“null”

我不太了解萨克森,但据我所知,这不是一个“空字符串”。。。它是一个值为“null”的字符串

我会尝试改变

text()!=null

所以它写着

<xsl:if test="SubdivisionType/ID[text()!='null']">

@Simar

如果我们将以下内容视为xml

<?xml version="1.0" encoding="utf-8"?>
<xml>
<SubdivisionType>
<ID>null</ID>
<Name>null</Name>
<Parent nil="true"/>
</SubdivisionType>
<SubdivisionType>
<ID>asd</ID>
 <Name>null</Name>
<Parent nil="true"/>
</SubdivisionType>
</xml>

无效的
无效的
自闭症
无效的
XSL:


输出:

<?xml version="1.0" encoding="UTF-8"?>
<xml>
<SubdivisionType>
<ID>asd</ID>
<Name>null</Name>
<Parent nil="true"/>
</SubdivisionType>
</xml>

自闭症
无效的

Saxon或任何其他XSLT处理器将其视为任何其他字符串。
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" `xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy> 
</xsl:template>
<xsl:template match = "SubdivisionType[ID = 'null']" />
</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<SubdivisionType>
<ID>asd</ID>
<Name>null</Name>
<Parent nil="true"/>
</SubdivisionType>
</xml>