引脚点。当一个案件被多次引用,且有不同的引脚点时,所有条目应被视为表中的一个条目。在本例中,第一个条目(932,942)和第二个条目(932,945)是针点值。而最终的输出应该是一个单一的条目,任何共同的引脚点,在本例中是932。输入XML
<root>
<p><styled-content><italic>Agarwal v Johnson </italic>(1979) 25 C3d 932, 942, overruled on other grounds in <italic>White v Ultramar, Inc.</italic> (1999) 21 C4th 563</styled-content></p>
<p><styled-content><italic>Agarwal v Johnson </italic>(1979) 25 C3d 932, 942, overruled on other grounds in <italic>White v Ultramar, Inc.</italic> (1999) 21 C4th 563</styled-content></p>
<p><styled-content><italic>Agarwal v Johnson </italic>(1979) 25 C3d 932, 945, overruled on other grounds in <italic>White v Ultramar, Inc.</italic> (1999) 21 C4th 563</styled-content></p>
<p><styled-content><italic>Advantacare Health Partners </italic>(1994) US Dist Lexis</styled-content></p>
<p><styled-content><italic>Advantacare Health Partners </italic>(1994) US Dist Lexis</styled-content></p>
<p><styled-content><italic>Alexander v Gardner-Denver Co.</italic> (1974) 415 US 36, 52 n15, 94 S Ct 1011</styled-content></p>
<p><styled-content><italic>Alexander v Gardner-Denver Co.</italic> (1974) 415 US 36, 94 S Ct 1011</styled-content></p>
</root>
XSLT代码
<xsl:template match="root">
<xsl:copy>
<xsl:for-each-group select="p" group-by="styled-content">
<xsl:text>
</xsl:text>
<p>
<xsl:copy-of select="current-grouping-key()"/>
</p>
</xsl:for-each-group>
</xsl:copy>
</xsl:template>
预期产出
<root>
<p>Agarwal v Johnson (1979) 25 C3d 932, overruled on other grounds in White v Ultramar, Inc. (1999) 21 C4th 563</p>
<p>Advantacare Health Partners (1994) US Dist Lexis</p>
<p>Alexander v Gardner-Denver Co. (1974) 415 US 36, 94 S Ct 1011</p>
</root>
我已经做了
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="2.0">
<xsl:output method="xml" omit-xml-declaration="no"/>
<xsl:template match="root">
<xsl:copy>
<xsl:for-each-group select="p/styled-content" group-by="normalize-space(italic[1])">
<xsl:text>
</xsl:text>
<p>
<xsl:copy-of select="replace(current-group()[last()], '([0-9]+?, )([0-9]+?, )', '$1')"/>
</p>
</xsl:for-each-group>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>