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