Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml XPath:按列浏览表层次结构_Xml_Xslt_Xpath - Fatal编程技术网

Xml XPath:按列浏览表层次结构

Xml XPath:按列浏览表层次结构,xml,xslt,xpath,Xml,Xslt,Xpath,为了简单起见,我有一个xml结构,它在下面的示例x=1中描述了一个包含x*2行和2列的简单表: 1. 2. 3. 4. 您提到xsl:iterate,它是XSLT 3的一部分,因此我假设您可以使用XSLT 2或XSLT 3,在这里,我认为按列处理/输出单元格的一般任务可以通过位置分组完成: <xsl:template match="table"> <xsl:variable name="cols" select="count(tr[1]/td)"/>

为了简单起见,我有一个xml结构,它在下面的示例x=1中描述了一个包含x*2行和2列的简单表:

1. 2. 3. 4. 您提到xsl:iterate,它是XSLT 3的一部分,因此我假设您可以使用XSLT 2或XSLT 3,在这里,我认为按列处理/输出单元格的一般任务可以通过位置分组完成:

  <xsl:template match="table">
      <xsl:variable name="cols" select="count(tr[1]/td)"/>
      <xsl:for-each-group select="tr/td" group-by="position() mod $cols">
          <xsl:sequence select="current-group()!normalize-space()"/>
      </xsl:for-each-group>
  </xsl:template>

您能使用XPath2.0吗?如果是这样,我想你想要的表达方式是//tr/td[1],//tr/td[2]谢谢,这正是我想要的!工作起来很轻松,对我来说很容易理解。好吧,不幸的是,如果x>1,这不起作用。例如,xml看起来是这样的:1 2 3 4 5 6 7 8抱歉,再解释一遍。xml还有两行5-8。然后输出是1 3 5 7 2 4 6 8,然而我想要的是1 3 2 4 5 7 6 8。但我还是接受了你的回答,因为我的问题一开始并没有说清楚!