我有一个xml,其中包含“位置”节点列表和“路径”节点 . 位置节点是坐标,路径节点使用对位置节点的引用来构建路径 . 它看起来像这样:

<location id="1" lat="42.4212312" lon="12.121312"/>
<location id="2" lat="42.5428919" lon="12.436133"/>
...
<path ref="1"/>
<path ref="2"/>
<path ref="1"/>
...

现在我的目标是编写一个xsl,它以正确的顺序列出lat,lon坐标,因此产生的csv将是这样的:

lat,lon
42.4212312,12.121312
42.5428919,12.436133
42.4212312,12.121312

我不是xslt专家,所以我无法弄清楚,如何在xpath谓词中引用其他节点的属性 . 我的尝试是下一个,但没有用,但我认为你可以找到它,我的目标是:

<xsl:for-each select="path">
    <xsl:value-of select='/location[@id=@ref]/@lat'/>, <xsl:value-of select='/location[@id=@ref]/@lon'/>
</xsl:for-each>

有问题的部分是:/ location [@ id = @ ref] / @ lat . 我认为它将从每个路径中获取@ref,并在谓词中使用它来查找相应的位置 .

有什么建议怎么解决?

谢谢!