Имам няколко записа с информация, които искам да разделя със запетая. Всеки запис обаче може да е празен и ако първият запис е празен, запетая не трябва да се появява. Например:
ако имаме четири XSLT параметъра: име, телефонен номер, адрес, професия
и ние имаме
- Име: Джон
- Телефон: 111-111-1111
- Адрес: въображаема улица
- Професия: Пекар
Тогава крайният низ трябва да бъде:
Джон, 111-111-1111, въображаема улица, Бейкър
ако параметрите за име и телефонен номер са празни или нулеви, тогава крайният низ трябва да бъде:
Въображаема улица, Бейкър
ако само телефонният номер е нулев или празен, тогава крайният низ трябва да бъде:
Джон, въображаема улица, Бейкър
На език като C# бих написал кода така:
foreach (EntryObject entry in entryList)
{
if (firstEntry == true && entry.Type != EntryType.Age && entry.Type != EntryType.Sex)
{
finalString += entry.ValueString;
firstEntry = false;
}
else if (firstEntry == false && entry.Type != EntryType.Age && entry.Type != EntryType.Sex)
{
finalString += ", " + entry.ValueString;
}
}
return finalString;
Чух обаче, че променливите в XSLT са неизменни. Как да подходя към този проблем в XSLT?
Редактиране: xml записът ще изглежда така:
<AddressBook>
<PersonalInfo>
<Age>33</Age>
<Sex>Male</Sex>
<Name>John</Name>
<PhoneNumber></PhoneNumber>
<Address>Imaginary Street</Address>
<Occupation>Baker</Occupation>
</PersonalInfo>
</AddressBook>
Имайте предвид, че някои записи може да са празни и ще използвам само име, телефонен номер, адрес и професия. Възрастта и пола трябва да се пренебрегват.