我正在尝试对输入的xml文件进行条件检查并放置值。
输入xml:
<workorder>
<newwo>1</newwo>
</workorder>
如果newwo为1,那么我必须在输出中设置为&#34; NEW&#34;别的&#34; OLD&#34;
预期输出为:
newwo: "NEW"
我的xslt是:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="2.0">
<xsl:template match="/">
<xsl:apply-templates select="NEWWO" />
</xsl:template>
<xsl:template match="/NEWWO">
<xsl:text>{
newwo:"
</xsl:text>
<xsl:choose>
<xsl:when test="NEWWO != '0'">NEW</xsl:when>
<xsl:otherwise>OLD</xsl:otherwise>
</xsl:choose>
<xsl:text>"
}</xsl:text>
</xsl:template>
请帮帮我。提前谢谢!
答案 0 :(得分:2)
我发现有很多原因你没有得到输出。
NEWWO
不会与newwo
匹配。/
,然后将模板应用于newwo
(已修复案例),但newwo
在该上下文中不存在。您必须将*/
或workorder/
添加到apply-templates(例如select="*/newwo"
)或将/
更改为/*
或{{1在比赛中。/workorder
(案例再次修复),但/newwo
不是根元素。删除newwo
。/
,但test="newwo != '0'"
已经是当前上下文。请改用newwo
或.
。 (如果您使用normalize-space()
,请务必针对字符串进行测试。(引用normalize-space()
。))这是一个更新的例子。
XML输入
1
XSLT 1.0
<workorder>
<newwo>1</newwo>
</workorder>
<强>输出强>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text"/>
<xsl:template match="/*">
<xsl:apply-templates select="newwo" />
</xsl:template>
<xsl:template match="newwo">
<xsl:text>{
newwo: "</xsl:text>
<xsl:choose>
<xsl:when test=".=1">NEW</xsl:when>
<xsl:otherwise>OLD</xsl:otherwise>
</xsl:choose>
<xsl:text>"
}</xsl:text>
</xsl:template>
</xsl:stylesheet>
答案 1 :(得分:0)
你试试如下
div