Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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 如何在XSLT中为每个循环连接两个不同循环中的适当2个元素?_Xml_Xslt_Foreach_Concatenation - Fatal编程技术网

Xml 如何在XSLT中为每个循环连接两个不同循环中的适当2个元素?

Xml 如何在XSLT中为每个循环连接两个不同循环中的适当2个元素?,xml,xslt,foreach,concatenation,Xml,Xslt,Foreach,Concatenation,我有下面的XML代码,我正在尝试将每个关键字与它的gnd_id连接起来,但不知道如何将“for each”和“concatenate”实现在一起 输出应为:Test,4354672-9;测试1,4023299-2 这是我的XML: <_nested__objekttyp__schlagworte> <objekttyp__schlagworte> <_id>3146</_id> <lk>

我有下面的XML代码,我正在尝试将每个关键字与它的gnd_id连接起来,但不知道如何将“for each”和“concatenate”实现在一起

输出应为:Test,4354672-9;测试1,4023299-2

这是我的XML:

<_nested__objekttyp__schlagworte>
      <objekttyp__schlagworte>
        <_id>3146</_id>
        <lk>
          <schlagworte date-created="2016-05-03T16:47:48+02:00" date-last-updated="2016-05-03T22:50:15+02:00">
            <_id>23</_id>
            <keyword>
              <de-DE>Test</de-DE>
            </keyword>
            <gnd_id>4354672-9</gnd_id>
          </schlagworte>
        </lk>
      </objekttyp__schlagworte>
      <objekttyp__schlagworte>
        <_id>3147</_id>
        <lk>
          <schlagworte date-created="2016-05-03T17:11:58+02:00" date-last-updated="2016-05-03T22:45:38+02:00">
            <_id>24</_id>
            <keyword>
              <de-DE>Test1</de-DE>
            </keyword>
            <gnd_id>4023299-2</gnd_id>
          </schlagworte>
        </lk>
      </objekttyp__schlagworte>

3146
23
试验
4354672-9
3147
24
测试1
4023299-2
这是我的XSLT:

<subject>                                             
        <xsl:for-each select="objekttyp/_nested__objekttyp__schlagworte/objekttyp__schlagworte/lk/schlagworte/schlagwort">
        <xsl:value-of select="de-DE"/>

        </xsl:for-each>
        <xsl:for-each select="objekttyp/_nested__objekttyp__schlagworte/objekttyp__schlagworte/lk/schlagworte">
        <xsl:if test="position() > 1">, </xsl:if>
         <xsl:value-of select="gnd_id"/>
        </xsl:for-each> 

        </subject>

, 
这样试试

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

<xsl:template match="/_nested__objekttyp__schlagworte">
    <xsl:for-each select="objekttyp__schlagworte/lk/schlagworte">
        <xsl:value-of select="keyword/de-DE" />
        <xsl:text>, </xsl:text>
        <xsl:value-of select="gnd_id" />
        <xsl:if test="position() != last()">
        <xsl:text>; </xsl:text>
        </xsl:if>
    </xsl:for-each>
</xsl:template>

</xsl:stylesheet>

, 
; 

这里没有真正的理由使用连接;您只需将单个值直接放入输出树。

好吧,基于您已经发布的代码处理
似乎很容易实现。如果您想要文本输出,为什么样式表中有
主题
元素?@MartinHonnen非常好,谢谢,它可以工作。没想到只有一个决定loop@michael.hor257k主题是一个都柏林核心标签,我的文本输出应该在这个标签中