コンマで区切りたい情報エントリがいくつかあります。ただし、各エントリは空である可能性があり、最初に表示されるエントリが空の場合、コンマは表示されません。例えば:
名前、電話番号、住所、職業の 4 つの XSLT パラメータがあるとします。
そして私たちは持っています
- 名前: ジョン
- 電話番号:111-111-1111
- 住所:空想通り
- 職業: パン職人
次に、最終的な文字列は次のようになります。
ジョン、111-111-1111、イマジナリー ストリート、ベイカー
名前と電話番号のパラメーターが空または null の場合、最終的な文字列は次のようになります。
イマジナリー ストリート、ベイカー
電話番号のみが null または空の場合、最終的な文字列は次のようになります。
ジョン、イマジナリー・ストリート、ベイカー
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>
特定のエントリが空である可能性があることに注意してください。名前、電話番号、住所、職業のみを使用します。年齢と性別は無視してください。