XSLT'de bir birleştirme gerçekleştirmek için yerleşik bir işlevden herhangi biri var mı, yoksa kendi yazmam gerekecek mi? buna Alim Territory önceliklidir meydana ancak ne zamanxslt coalesce işlevi ile Saxon
<root>
<Element1>
<Territory>Worldwide</Territory>
<Name>WorldwideName</Name>
<Age>78</Age>
</Element1>
<Element1>
<Territory>GB</Territory>
<Name>GBName</Name>
</Element1>
</root>
ikinci element1 (GB bölgesi) tamamen isteğe bağlıdır ve ya meydana maynot edilebilir:
böyle bazı xml var.
Yani ne sonra oldu aşağıdaki COALESCE gibi bir şey:
<xsl:variable name="Worldwide" select="root/Element1[./TerritoryCode ='Worldwide']"/>
<xsl:variable name="GB" select="root/Element1[./TerritoryCode ='GB']"/>
<xsl:variable name="Name" select="ext:coalesce($GB/Name, $Worldwide/Name)"/>
yukarıdaki örnekte değişken Adı GBName içerecek olan kimliği.
xsl: select'i kullanabileceğimi biliyorum, ama bakabileceğim 4 yer var ve xsl: sadece karmaşık ve karmaşık bir seçim yap, bu yüzden yerleşik bir işlev bulmayı umuyordum ama Şimdiye kadar şans yok.
Teşekkür ederiz.
<xsl:variable name="Name" select="($GB/Name, $Worldwide/Name)[1]"/>
yüklem filtre dizisindeki ilk boş olmayan öğe seçecektir: Eğer sadece değişkenlerden öğelerin bir diziyi oluşturmak ve daha sonra bir yüklem filtreli ilk birini seçmek olabilir XSLT 2.0
XPATH 2 destekleri [koşullu ifadeler] (http://www.w3.org/TR/xpath20/#id-conditionals) ki bunlar Bunu başarmana yardım et. –