Xml XSLT2.0组以按元素内容开头

Xml XSLT2.0组以按元素内容开头,xml,xslt,xpath,xslt-2.0,xpath-2.0,Xml,Xslt,Xpath,Xslt 2.0,Xpath 2.0,我是XSLT2.0和XPath2.0的新手,我正在努力将联系人列表分组,我的目的是合并属于先前定义的人的相邻号码(注意空元素) 这里是我的输入XML 约翰 1111 乔治 2222 3333 卡特 4444 Mimmo 5555 6666 7777 8888 我的期望输出 约翰 1111 乔治 2222 3333 卡特 4444 Mimmo 5555 6666 7777 8888 我尝试编写XSLT2.0 以及输出 约翰 1111 2222 3333 4444 5555 6666

我是XSLT2.0和XPath2.0的新手,我正在努力将联系人列表分组,我的目的是合并属于先前定义的人的相邻号码(注意空元素)

这里是我的输入XML


约翰
1111
乔治
2222
3333
卡特
4444
Mimmo
5555
6666
7777
8888
我的期望输出


约翰
1111
乔治
2222
3333
卡特
4444
Mimmo
5555
6666
7777
8888
我尝试编写XSLT2.0


以及输出


约翰
1111
2222
3333
4444
5555
6666
7777
8888
我认为问题在于分组标准,但我不明白为什么。
谢谢

您需要在
组中进行匹配,以=“行[规范化空间(人)]”


您的错误是“自我”。您可以在此处使用“.”或“self::node()。self本身意味着child::self,即所有名为“self”的子元素。
  <xsl:template match="/">
   <contacts>
    <xsl:for-each-group select="rows/row" group-starting-with="row[normalize-space(person)]">
      <contact>
        <xsl:copy-of select="person"/>
        <numbers>
          <xsl:copy-of select="current-group()/tel"/>
        </numbers>
      </contact>
    </xsl:for-each-group>
   </contacts>
  </xsl:template>