Это продолжение моего предыдущего вопроса; Сортировка по атрибуту, полученному из списка ссылок
Теперь я добавил два элемента VisitedCity, которые расположены в той части мира, которая не указана в списке ссылок, используемом для сортировки.Я хотел бы, чтобы все такие элементы заканчивались в конце списка, отсортированного внутри по второму ключу (Date).
Вот обновленный исходный код xml:
<?xml version="1.0" encoding="UTF-8"?> <Atlas>
<Cities>
<City id="1" worldPart="Africa">
<Name>Luxor</Name>
<Founded>-3200</Founded>
<Location>Egypt</Location>
</City>
<City id="2" worldPart="Africa">
<Name>Tripoli</Name>
<Founded>-700</Founded>
<Location>Libya</Location>
</City>
<City id="3" worldPart="Americas">
<Name>Cholula</Name>
<Founded>-200</Founded>
<Location>Mexico</Location>
</City>
<City id="4" worldPart="Americas">
<Name>Flores</Name>
<Founded>-1000</Founded>
<Location>Guatemala</Location>
</City>
<City id="5" worldPart="Europe">
<Name>Argos</Name>
<Founded>-5000</Founded>
<Location>Greece</Location>
</City>
<City id="6" worldPart="Europe">
<Name>Athens</Name>
<Founded>-4000</Founded>
<Location>Greece</Location>
</City>
<City id="7" worldPart="Asia">
<Name>Varanasi</Name>
<Founded>-1800</Founded>
<Location>India</Location>
</City>
<City id="8" worldPart="Asia">
<Name>Jakarta</Name>
<Founded>397</Founded>
<Location>Indonesia</Location>
</City>
</Cities>
<VisitedCities lastUpdate="2018-09-10">
<VisitedCity cityID="6">
<Date>1883-08-26</Date>
<Visitor>Dora</Visitor>
</VisitedCity>
<VisitedCity cityID="3">
<Date>1907-01-02</Date>
<Visitor>Nemo</Visitor>
</VisitedCity>
<VisitedCity cityID="4">
<Date>1940-02-08</Date>
<Visitor>Jimenez</Visitor>
</VisitedCity>
<VisitedCity cityID="7">
<Date>2006-09-11</Date>
<Visitor>Cook</Visitor>
</VisitedCity>
<VisitedCity cityID="2">
<Date>1886-06-10</Date>
<Visitor>James T. Kirk</Visitor>
</VisitedCity>
<VisitedCity cityID="8">
<Date>1996-11-10</Date>
<Visitor>Andree</Visitor>
</VisitedCity>
</VisitedCities> </Atlas>
Требуемый результат:следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<Atlas>
<Cities>
<City id="1" worldPart="Africa">
<Name>Luxor</Name>
<Founded>-3200</Founded>
<Location>Egypt</Location>
</City>
<City id="2" worldPart="Africa">
<Name>Tripoli</Name>
<Founded>-700</Founded>
<Location>Libya</Location>
</City>
<City id="3" worldPart="Americas">
<Name>Cholula</Name>
<Founded>-200</Founded>
<Location>Mexico</Location>
</City>
<City id="4" worldPart="Americas">
<Name>Flores</Name>
<Founded>-1000</Founded>
<Location>Guatemala</Location>
</City>
<City id="5" worldPart="Europe">
<Name>Argos</Name>
<Founded>-5000</Founded>
<Location>Greece</Location>
</City>
<City id="6" worldPart="Europe">
<Name>Athens</Name>
<Founded>-4000</Founded>
<Location>Greece</Location>
</City>
<City id="7" worldPart="Asia">
<Name>Varanasi</Name>
<Founded>-1800</Founded>
<Location>India</Location>
</City>
<City id="8" worldPart="Asia">
<Name>Jakarta</Name>
<Founded>397</Founded>
<Location>Indonesia</Location>
</City>
</Cities>
<VisitedCities lastUpdate="2018-09-10">
<VisitedCity cityID="2">
<Date>1886-06-10</Date>
<Visitor>James T. Kirk</Visitor>
</VisitedCity>
<VisitedCity cityID="6">
<Date>1883-08-26</Date>
<Visitor>Dora</Visitor>
</VisitedCity>
<VisitedCity cityID="3">
<Date>1907-01-02</Date>
<Visitor>Nemo</Visitor>
</VisitedCity>
<VisitedCity cityID="4">
<Date>1940-02-08</Date>
<Visitor>Jimenez</Visitor>
</VisitedCity>
<VisitedCity cityID="8">
<Date>1996-11-10</Date>
<Visitor>Andree</Visitor>
</VisitedCity>
<VisitedCity cityID="7">
<Date>2006-09-11</Date>
<Visitor>Cook</Visitor>
</VisitedCity>
</VisitedCities>
</Atlas>
Насколько я понимаю, index-of (), используемый в предыдущем решении Мартина Хоннена, будет содержать пустые значения последовательности, которые либо приведут эти города кбыть сброшены или отсортированы перед всеми другими городами.Есть ли способ определить «запасное» значение, которое используется вместо этих пустых значений?Или мне, возможно, нужно создать полный список ссылок, чтобы избежать этого?
Или я полностью неправильно понял index-of ()?Пожалуйста, помогите мне разобраться в этих несчастных городах!Я использую XSLT 2.0.