xml的原始来源
<SubdivisionType>
<ID>null</ID>
<Name>null</Name>
<Parent i:nil="true"/>
</SubdivisionType>
String&#39; null&#39;由E4X生成。我必须检查SubdivisionType / ID是否包含另一个值然后&#39; null&#39;然后跳过所有SubdivisionType标记。
这是我的工作方式
<xsl:if test="SubdivisionType/ID[text()!=null]" >
...
</xsl:if>
我无法理解xlst(saxon)如何处理字符串&#39; null&#39;。
答案 0 :(得分:1)
我不认识saxon,但据我所知,这不是“空字符串”......它是一个值为“null”的字符串。
我会尝试改变......
text()!=null
为...
text()!='null'
所以它读取......
<xsl:if test="SubdivisionType/ID[text()!='null']">
答案 1 :(得分:0)
@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"?>
<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>