gpt4 book ai didi

xml - XSL : output of "nested" structures

转载 作者:行者123 更新时间:2023-12-04 05:57:31 25 4
gpt4 key购买 nike

我有以下类型的 XML 文档:

<item>
<item>
<item>
... (same elements <item> ... </item> here)
</item>
</item>
</item>

...以及以下 XSL 转换:
<xsl:template match="item"><xsl:text>
open</xsl:text>
<xsl:apply-templates/><xsl:text>
close</xsl:text>
</xsl:template>

我得到的是:
open
open
open
close
close
close

所以我想知道是否有可能以某种方式获得这样的缩进输出:
open
open
open
close
close
close

谢谢你的帮助!

附言通过让转换的输出方法为HTML,绝对可以得到我想要的。但是,我需要在文本中“直接”缩进,而不是使用任何类型的 HTML 列表等。

最佳答案

本次改造 :

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>

<xsl:template match="item">
<xsl:param name="pIndent" select="' '"/>

<xsl:value-of select="concat('&#xA;', $pIndent, 'open')"/>

<xsl:apply-templates>
<xsl:with-param name="pIndent"
select="concat($pIndent, ' ')"/>
</xsl:apply-templates>

<xsl:value-of select="concat('&#xA;', $pIndent, 'close')"/>
</xsl:template>

<xsl:template match="node()[not(self::item)]">
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>

当应用于提供的 XML 文档时 :
<item>
<item>
<item> ...
<item> ... </item>
</item>
</item>
</item>

产生想要的、缩进的输出 :
  open
open
open
open
close
close
close
close

说明 :
$pIndent参数用于保存要附加到非空白输出的空白字符串。每当 xsl:apply-templates使用时,与此参数传递的值将扩展两个空格。

关于xml - XSL : output of "nested" structures,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9329124/

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