gpt4 book ai didi

xml - 如何仅使用 XSLT 去除回车?

转载 作者:数据小太阳 更新时间:2023-10-29 01:57:38 27 4
gpt4 key购买 nike

我有一个可以有两种形式的 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>&#13;</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>&#xA;</xsl:text>
</xsl:if>
</xsl:template>

</xsl:stylesheet>

normalize-space() 用于确保您的输入数据没有不需要的空格。

关于xml - 如何仅使用 XSLT 去除回车?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6554546/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com