Как посчитать разные значения в узле?

Перейдите в папку eclipse (где установлен eclipse) и откройте файл eclipse.ini в своем редакторе и добавьте следующий код после тега openFile.

-vm C: \ Program Files \ JDK6 \ bin \ javaw.exe

Вот и все.

13
задан Mathias Müller 21 March 2014 в 16:09
поделиться

4 ответа

Если у Вас есть большой документ, Вы, вероятно, хотите использовать "Метод Muenchian", который обычно используется для группировки, для идентификации отличных узлов. Объявите ключ, который индексирует вещи, которые Вы хотите считать значениями, которые отличны:

<xsl:key name="artists-by-country" match="Artist_by_Country" use="Country" />

Тогда можно добраться <Artist_by_Country> элементы, которые имеют отличное использование стран:

/Artists_by_Countries
  /Artist_by_Country
    [generate-id(.) =
     generate-id(key('artists-by-country', Country)[1])]

и можно считать их путем обертывания этого в вызов к эти count() функция.

, Конечно, в XSLT 2.0, это столь же просто как

count(distinct-values(/Artists_by_Countries/Artist_by_Country/Country))
26
ответ дан JeniT 21 March 2014 в 16:09
поделиться

Попробуйте что-то вроде этого:

count(//Country[not(following::Country/text() = text())])

"Дают мне количество всех узлов Страны без следующей Страны с совпавшим текстом"

, интересный бит того выражения, IMO, после ось.

Вы могли, вероятно, также удалить первое /text() и заменить второе .

5
ответ дан Chris Marasti-Georg 21 March 2014 в 16:09
поделиться

В XSLT 1.0 это не очевидно, но следующее должно дать Вам общее представление о требовании:

count(//Artist_by_Country[not(Location_ID=preceding-sibling::Artist_by_Country/Location_ID)]/Location_ID)

, Чем больше элементов в Вашем XML, тем дольше это берет, поскольку он проверяет каждый предыдущий одноуровневый элемент каждого элемента.

6
ответ дан samjudson 21 March 2014 в 16:09
поделиться

Если Вы имеете контроль над xml поколением на первом вхождении страны, Вы могли бы добавить, что атрибут к узлу страны, такому как отличный ='true' отмечает страну, как "используется" и не впоследствии добавляет отличный атрибут при случайной встрече с той страной снова.

Вы могли тогда сделать

<xsl:for-each select="Artists_by_Countries/Artist_by_Country/Country[@distinct='true']" />
0
ответ дан Nick Allen 21 March 2014 в 16:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: