XSLT выводит разные значения - PullRequest
0 голосов
/ 23 сентября 2018

У меня есть этот XML:

<LocatorInfo>
 <LocationAddr>
            <StreetNum>182</StreetNum>
            <StreetName>Eastern Avenue</StreetName>
            <City>Fall River</City>
            <StateProv>MA</StateProv>
            <PostalCode>02723</PostalCode>
            <Country>USA</Country>
            <GEOCode>
                <Latitude>41.694600119635915</Latitude>
                <Longitude>-71.13038416718094</Longitude>
            </GEOCode>
        </LocationAddr>
        <LocationTimestamp>4/6/2018 4:17:37 PM</LocationTimestamp>
        <LocationDistance>4.338 miles</LocationDistance>
        <Accuracy>1.985 miles</Accuracy>
    </LocatorInfo>
<LocatorInfo>
    <LocationAddr>
      <StreetNum>285</StreetNum>
      <StreetName>Wastern Avenue</StreetName>
      <City>Ball River</City>
      <StateProv>MA</StateProv>
      <PostalCode>02723</PostalCode>
      <Country>USA</Country>
      <GEOCode>
        <Latitude>41.694600119635915</Latitude>
        <Longitude>-71.13038416718094</Longitude>
      </GEOCode>
    </LocationAddr>
    <LocationTimestamp>4/7/2018 7:00:03 AM</LocationTimestamp>
    <LocationDistance>4.338 miles</LocationDistance>
    <Accuracy>1.985 miles</Accuracy>
  </LocatorInfo>
<LocatorInfo>
    <LocationAddr>
      <StreetNum>182</StreetNum>
      <StreetName>Eastern Avenue</StreetName>
      <City>Fall River</City>
      <StateProv>MA</StateProv>
      <PostalCode>02723</PostalCode>
      <Country>USA</Country>
      <GEOCode>
        <Latitude>41.694600119635915</Latitude>
        <Longitude>-71.13038416718094</Longitude>
      </GEOCode>
    </LocationAddr>
    <LocationTimestamp>4/7/2018 7:00:03 AM</LocationTimestamp>
    <LocationDistance>4.338 miles</LocationDistance>
    <Accuracy>1.985 miles</Accuracy>
  </LocatorInfo>

Мне нужно найти способ ввода каждого отдельного адреса в одном абзаце (StreetNum, StreetName, City, StateProv), в основном просто не выводить дубликаты.И посчитайте, сколько раз каждый адрес встречался.

Я понятия не имею, как решить проблему.

1 Ответ

0 голосов
/ 23 сентября 2018

Я полагаю, что xml spy поддерживает XSLT 2.0 и выше, поэтому вы можете использовать xsl:for-each-group для получения различных группировок.

Попробуйте этот XSLT

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

    <xsl:template match="/*">
      <Addresses>
        <xsl:for-each-group select="LocatorInfo/LocationAddr" group-by="string-join((StreetNum, StreetName, City, StateProv), '!')">
          <Address>
            <xsl:copy-of select="StreetNum, StreetName, City, StateProv" />
            <Count>
              <xsl:value-of select="count(current-group())" />
            </Count>
        </Address>
        </xsl:for-each-group>
      </Addresses>
    </xsl:template>
</xsl:stylesheet>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...