aşağıdaki Xpath 1.0 ifade kullanın. XML belgesinin yapısı bilindiğinde, daha spesifik konum testi testleri kullanın. animal
elemanları daha sonra XML belgesine aşağıdaki XPath üst elemanın bütün çocuklar (2.0 veya 1.0, sırasıyla) ise Örneğin, ifadeler daha verimli olabilir:
/*/animal[ends-with(@name, '_monkey')]
ve
/*/animal[substring(@name, string-length(@name) -6)='_monkey']
(örneğin eğer gerçekten demek "içerir" ve "ile biten") kişinin özel ihtiyaçlarına bağlı olarak , fonksiyonlar contains()
, starts-with()
ve substring()
da yararlı olabilir:
contains(someString, someTargetString)
starts-with(someString, someTargetString)
substring(someString, start-index, length) = someTargetString
Son olarak, <xsl:templates>
'un match
özniteliğinin, mutlak bir XPath ifadesi içermesi gerekmez - yalnızca yeterli bağlamın kullanılması önerildiğini belirten göreli bir XPath ifadesi kullanılmalıdır.
<xsl:template match="animal[ends-with(@name, '_monkey')]">
ve
<xsl:template match=
"animal[substring(@name, string-length(@name) -6)='_monkey']">
XSLT'DE hangi sürümünü kullanıyorsunuz: yukarıdaki gibi bir şey olacak maç ifadeler olarak kullanılan Böylece
? –
İyi soru, +1. XSLT 1.0 ve XSLT 2.0 çözümleri için cevabımı görün.:) –
@iYasha Şu anda 1.0 kullanıyorum, ancak ikisi arasındaki farkları öğrenmekle ilgileniyorum. –