xml – XSLT xsl:normalize-space()函数不起作用
发布时间:2020-12-16 05:33:38 所属栏目:百科 来源:网络整理
导读:我已经按照MSDN文档逐字记录 here无效. 我的XML的一个例子: Ticket xmlns:i="http://www.w3.org/2001/XMLSchema-instance" LogNo454564/LogNo CaseNumber Part1FGV/Part1 Part29999/Part2 Part388888888 /Part3 /CaseNumber/Ticket 我的XSLT的一个例子: ?x
我已经按照MSDN文档逐字记录
here无效.
我的XML的一个例子: <Ticket xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <LogNo>454564</LogNo> <CaseNumber> <Part1>FGV</Part1> <Part2>9999</Part2> <Part3>88888888 </Part3> </CaseNumber> </Ticket> 我的XSLT的一个例子: <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:strip-space elements="*" /> <xsl:template match="/text"> <xsl:value-of select='normalize-space()'/> </xsl:template> <xsl:template match="Ticket"> <Ticket><xsl:attribute name="LogNumber"><xsl:value-of select="LogNo"/></xsl:attribute> <CaseNumber><xsl:value-of select="CaseNumber/Part1"/>-<xsl:value-of select="CaseNumber/Part2"/>-<xsl:value-of select="CaseNumber/Part3"/></CaseNumber> </Ticket> </xsl:template> </xsl:stylesheet> 我的输出XML: <?xml version="1.0" encoding="IBM437"?> <Tickets> <Ticket LogNumber="454564"> <CaseNumber>FGV-9999-88888888 </CaseNumber> </Ticket> </Tickets> 我在用 <xsl:template match="/text"> <xsl:value-of select='normalize-space()'/> </xsl:template> 正如MSDN文章和网上的其他人所说,但似乎无法从CaseNumber Part3中删除尾随空格.有什么我做错了吗?
更改< xsl:template match =“/ text”>
to:xsl:template match =“text()”> 并使用xsl:apply-templates而不是xsl:value-of. <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:strip-space elements="*" /> <xsl:template match="text()"> <xsl:value-of select='normalize-space()'/> </xsl:template> <xsl:template match="Ticket"> <Ticket> <xsl:attribute name="LogNumber"> <xsl:value-of select="LogNo"/> </xsl:attribute> <CaseNumber> <xsl:apply-templates select="CaseNumber/Part1"/>-<xsl:apply-templates select="CaseNumber/Part2"/>-<xsl:apply-templates select="CaseNumber/Part3"/> </CaseNumber> </Ticket> </xsl:template> </xsl:stylesheet> 这将生成以下输出: <Ticket LogNumber="454564"><CaseNumber>FGV-9999-88888888</CaseNumber></Ticket> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |