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-group
和 xs: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>
我有一个包含如下行的文本文件:
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-group
和 xs: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>