我已经按照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>
更改< xsl:template match =“/ text”>
to: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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。