Xslt 复制所有内容,但值相同时除外

Xslt 复制所有内容,但值相同时除外,xslt,duplicates,duplicate-removal,Xslt,Duplicates,Duplicate Removal,我没有经验,所以我需要一些帮助 我导出了一个XML格式的Filemaker数据库,这就是结果 <?xml version="1.0" encoding="UTF-8"?> <!-- Questa grammatica non è più in uso - usare FMPXMLRESULT al suo posto --> <FMPDSORESULT> <ROW MODID="5" RECORDID="2"> <FASCICOLO&

我没有经验,所以我需要一些帮助

我导出了一个XML格式的Filemaker数据库,这就是结果

<?xml version="1.0" encoding="UTF-8"?>
<!-- Questa grammatica non è più in uso - usare FMPXMLRESULT al suo posto -->
<FMPDSORESULT>
<ROW MODID="5" RECORDID="2">
    <FASCICOLO>Adams John</FASCICOLO>
    <TITOLO_DOC>John Adams to Mr X</TITOLO_DOC>
    <LUOGO>New York</LUOGO>
    <GG>27</GG>
    <MM>04</MM>
    <AA>1969</AA>
    <CONTENUTO>Greetings</CONTENUTO>
    <TIPOLOGIA>letter</TIPOLOGIA>
    <NUM_CARTE>1</NUM_CARTE>
    <INTEGR_DESC/>
</ROW>
<ROW MODID="6" RECORDID="6">
    <FASCICOLO>Adams John</FASCICOLO>
    <TITOLO_DOC>John Adams to Mr X</TITOLO_DOC>
    <LUOGO>s.l.</LUOGO>
    <GG>03</GG>
    <MM>07</MM>
    <AA>1996</AA>
    <CONTENUTO>Greetings</CONTENUTO>
    <TIPOLOGIA>letter</TIPOLOGIA>
    <NUM_CARTE>3</NUM_CARTE>
    <INTEGR_DESC>Presente la busta originale.</INTEGR_DESC>
</ROW>

亚当斯·约翰
约翰·亚当斯致X先生
纽约
27
04
1969
问候语
信
1.
亚当斯·约翰
约翰·亚当斯致X先生
s、 l。
03
07
1996
问候语
信
3.
布斯塔原创节目主持人。
等等(我还没有全部抄袭)

我使用这个XSL文件来转换它

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="xml" encoding="iso-8859-1"/>
<xsl:template match="/">
    <xsl:element name="dsc">
        <xsl:for-each select="//ROW">
            <xsl:element name="c">
                <xsl:attribute name="level">file</xsl:attribute>
                <xsl:attribute name="id">.</xsl:attribute>
                <xsl:element name="did">
                    <xsl:element name="unittitle">
                        <xsl:attribute name="encodinganalog">ISAD 1 - 2 title</xsl:attribute>
                        <xsl:value-of select="./FASCICOLO/text()"/>
                    </xsl:element>
                </xsl:element>
            </xsl:element>
        </xsl:for-each>
    </xsl:element>
</xsl:template>

文件
.
ISAD 1-2标题

我得到了这个XML文件

<?xml version="1.0" encoding="ISO-8859-1"?>
<dsc>
<c level="file" id=".">
    <did>
        <unittitle encodinganalog="ISAD 1 - 2 title">Adams John</unittitle>
    </did>
</c>
<c level="file" id=".">
    <did>
        <unittitle encodinganalog="ISAD 1 - 2 title">Adams John</unittitle>
    </did>
</c>
<c level="file" id=".">
    <did>
        <unittitle encodinganalog="ISAD 1 - 2 title">Doe Jane</unittitle>
    </did>
</c>
<c level="file" id=".">
    <did>
        <unittitle encodinganalog="ISAD 1 - 2 title">Doe Jane</unittitle>
    </did>
</c>
<c level="file" id=".">
    <did>
        <unittitle encodinganalog="ISAD 1 - 2 title">Doe Jane</unittitle>
    </did>
</c>
<c level="file" id=".">
    <did>
        <unittitle encodinganalog="ISAD 1 - 2 title">Doe Jane</unittitle>
    </did>
</c>
<c level="file" id=".">
    <did>
        <unittitle encodinganalog="ISAD 1 - 2 title">Green Charles</unittitle>
    </did>
</c>
<c level="file" id=".">
    <did>
        <unittitle encodinganalog="ISAD 1 - 2 title">Green Charles</unittitle>
    </did>
</c>
<c level="file" id=".">
    <did>
        <unittitle encodinganalog="ISAD 1 - 2 title">Green Charles</unittitle>
    </did>
</c>
<c level="file" id=".">
    <did>
        <unittitle encodinganalog="ISAD 1 - 2 title">Jones Charles</unittitle>
    </did>
</c>
<c level="file" id=".">
    <did>
        <unittitle encodinganalog="ISAD 1 - 2 title">White Walter</unittitle>
    </did>
</c>

亚当斯·约翰
亚当斯·约翰
Doe Jane
Doe Jane
Doe Jane
Doe Jane
格林·查尔斯
格林·查尔斯
格林·查尔斯
琼斯·查尔斯
怀特沃尔特

我需要得到同样的结果,但是名字只重复了一次,这样:

<?xml version="1.0" encoding="ISO-8859-1"?>
<dsc>
<c level="file" id=".">
    <did>
        <unittitle encodinganalog="ISAD 1 - 2 title">Adams John</unittitle>
    </did>
</c>
<c level="file" id=".">
    <did>
        <unittitle encodinganalog="ISAD 1 - 2 title">Doe Jane</unittitle>
    </did>
</c>
<c level="file" id=".">
    <did>
        <unittitle encodinganalog="ISAD 1 - 2 title">Green Charles</unittitle>
    </did>
</c>
<c level="file" id=".">
    <did>
        <unittitle encodinganalog="ISAD 1 - 2 title">Jones Charles</unittitle>
    </did>
</c>
<c level="file" id=".">
    <did>
        <unittitle encodinganalog="ISAD 1 - 2 title">White Walter</unittitle>
    </did>
</c>

亚当斯·约翰
Doe Jane
格林·查尔斯
琼斯·查尔斯
怀特沃尔特


这是一个例子,真实的文件将更大,可能有很多重复,所以我不想手动删除它们。可能吗?非常感谢

首先,如果您是从Filemaker导出,您可以在源位置消除结果中的重复项


其次,如果在导出期间应用XSLT,则可以使用
xalan:distinct()
扩展函数在转换期间消除重复项。如果您使用的是版本11或更高版本,则EXSLT
set:distinct()
函数也可用。

您的问题非常模糊,您没有提到打算如何执行这些操作。您会使用.NET、PHP、Python或其他吗?很抱歉,我本打算使用XSL,但正如您所看到的,我对这些内容知之甚少。您迄今为止尝试过XSLT吗?如果是这样,请告诉我们你的出发点。我编辑了第一篇文章,试图更好地解释自己