作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有一个可以有两种形式的 xml 代码:
表格 1
<?xml version="1.0">
<info>
</info>
表格 2
<?xml version="1.0">
<info>
<a href="http://server.com/foo">bar</a>
<a href="http://server.com/foo">bar</a>
</info>
我从一个循环中读取每种形式的 xml 并将其传递给 xslt 样式表。
XSLT 代码
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:strip-space elements="*" />
<xsl:template match="*|@*|text()">
<xsl:apply-templates select="/info/a"/>
</xsl:template>
<xsl:template match="a">
<xsl:value-of select="concat(text(), ' ', @href)"/>
<xsl:text> </xsl:text>
</xsl:template>
</xsl:stylesheet>
我得到了这个:
bar http://server.com/foobar http://server.com/foo
如何使用 仅 XSLT 删除第一个空行?
最佳答案
From a loop I read each form of xml and pass it to an xslt stylesheet.
可能是您的应用程序在空表单(表单 1)上执行样式表导致的。尝试通过仅在表单不为空时才执行样式表来处理此问题。
此外,您可能希望将样式表更改为这个样式表:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:output method="text"/>
<xsl:strip-space elements="*" />
<xsl:template match="info/a">
<xsl:value-of select="concat(normalize-space(.),
' ',
normalize-space(@href))"/>
<xsl:if test="follwing-sibling::a">
<xsl:text>
</xsl:text>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
normalize-space()
用于确保您的输入数据没有不需要的空格。
关于xml - 如何仅使用 XSLT 去除回车?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6554546/
我是一名优秀的程序员,十分优秀!