Sti*_*ack 6 xml xslt null xml-nil
在XML文档中,我有一些地址数据..
<zip>08001</zip>
<zipPlus xsi:nil="true" />
Run Code Online (Sandbox Code Playgroud)
和
<zip>08002</zip>
<zipPlus>4512</zipPlus>
Run Code Online (Sandbox Code Playgroud)
如果有值要使用,只想打扰显示zip plus值.(出于这个例子的目的,我不在乎它是否是正确的zip加号格式)
试图在XSLT中使用以下代码段似乎无法正常工作,我认为这与我如何检查xsl:nil值有关
<EmployerZipCode>
<xsl:value-of select="zip"/>
<xsl:if test="zipPlus != @xsl:nil">
<xsl:value-of select="'-'"/>
<xsl:value-of select="zipPlus"/>
</xsl:if>
<xsl:value-of select="$sepChar"/> <!--this is a comma -->
</EmployerZipCode>
Run Code Online (Sandbox Code Playgroud)
我得到的结果总是如此
08001,
08002,
Run Code Online (Sandbox Code Playgroud)
不
08001,
08002-4512,
Run Code Online (Sandbox Code Playgroud)
在XSLT中检查nil-led元素的正确方法是什么?有没有其他方法来解决这个问题,并获得我想要的结果?
在XSLT 2.0中,由于我从未完全理解的原因,有一个自定义函数
test="not(nilled(zipPlus))"
Run Code Online (Sandbox Code Playgroud)
经过更多测试后,没有给出涉及检查 nil 属性的可靠答案。
我不得不求助于使用 string-length() 来获得我需要的结果。
<EmployerZipCode>
<xsl:value-of select="zip"/>
<xsl:if test="string-length(zipPlus) > 0">
<xsl:value-of select="'-'"/>
<xsl:value-of select="zipPlus"/>
</xsl:if>
<xsl:value-of select="$sepChar"/>
</EmployerZipCode>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11362 次 |
最近记录: |