XSLT:使用模板匹配和apply-templates仅显示唯一值

时间:2017-11-28 11:11:23

标签: xml xpath xslt-2.0

我有这样的XML:

<?xml version="1.0" encoding="UTF-8"?>
<data>
    <result id="344" part="454" ident="345">    
        <set1>
          <name>John</name>
        </set1>     
        <set2>
          <year>1972</year>
        </set2> 
        <set3>
         <surname>Nash</surname>
        </set3>  
    </result>  
    <result id="344" part="451" ident="341">
        <set1>
          <name>Mickey</name>
        </set1> 
        <set2>
          <year>1966</year>
        </set2>
        <set3>
         <surname>Donay</surname>
        </set3> 
    </result>  
    <result id="344" part="454" ident="342">    
        <set1>
          <name>Peter</name>
        </set1>     
        <set2>
          <year>1979</year>
        </set2>
        <set3>
         <surname>Riley</surname>
        </set3>  
    </result>  
</data>

我正在尝试为每个唯一< set1 / name set3 / surname 获取值< strong {结果 参数,使用<xsl:template match=""><xsl:apply-templates />。此外,我尝试使用xsl:for-each-group,但所有值都会显示。

我用过:

<xsl:for-each-group select="result" group-by="concat(@id, '+', @part, '+', @ident)">
<xsl:apply-templates /> 
</xsl:for-each-group>

在此之前我已经创建了模板

<xsl:template match="//set1|//set3">

应用模板后所需的输出:

John Nash
Mickey Donay
Peter Riley

2 个答案:

答案 0 :(得分:2)

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each-group select="//result" group-by="concat(@id, '+', @part, '+', @ident)">
    <xsl:value-of select="set1/name"/>
    <xsl:text>&#xA0;</xsl:text>
    <xsl:value-of select="set3/surname"/>
    <xsl:text>&#10;</xsl:text>
</xsl:for-each-group>

</xsl:template>
</xsl:stylesheet>

返回

John Nash
Mickey Donay
Peter Riley

答案 1 :(得分:1)

如果你想要的是输出每个fig, ax = plt.subplots(figsize=(28, 10)) ax.set_ylim(0, df.max().max()) # setting the upper y_limit to the maximum value in the dataframe df[["A", "B", "C"]].plot.area(ax=ax) df["D"].plot.line(ax=ax, color='red') plt.show() 连接的两个元素,然后执行

result

http://xsltransform.hikmatu.com/eiQZDbd/1

相关问题