xsl:for-each-group "fn:unparsed-text-lines()" 的输出(使用 "group-starting-with" 属性)

xsl:for-each-group the output of "fn:unparsed-text-lines()" (using the "group-starting-with" attribute)

我有一个包含如下行的文本文件:

ABC
DEF
 GHI
JKL
 MNO
 PQR
 STU
VWX
YZA

所以我用 XSLT-3.0 的 fn:unparsed-text-lines('fileName','UTF-8') 读取了这个文件的行,我想 group/merge 以 space 开头并换行的行他们在元素中。例如,使用 xsl:for-each-group:

<line>ABC</line>
<line>DEF GHI</line>
<line>JKL MNO PQR STU</line>
<line>VWX</line>
<line>YZA</line>

但我不知道如何在 XSLT-3.0 中使用 xsl:for-each-groupxs:strings 序列。我必须先将字符串转换为节点吗?或者有更好的方法吗?

这是功能失调的 XSLT 尝试(谓词只是一个提示,不起作用):

<xsl:for-each-group select="unparsed-text-lines('filename.txt','utf-8')" group-starting-with="text()[not(starts-with(.,' '))]">
  <line><xsl:value-of select="string-join(current-group(),'DELIMITER')"/></line>
</xsl:for-each-group>

字符串不是文本节点。试试这样:

<xsl:for-each-group select="$lines" group-starting-with=".[not(starts-with(.,' '))]">
    <line>
        <xsl:value-of select="current-group()" separator=""/>
    </line>
</xsl:for-each-group>