كيفية حساب العقد المحددة في Hierachy XML تعتمد على الحالة في XSL
سؤال
أنا أكتب ورقة أنماط في XSL (الإصدار 2.0) أريد أن أعرف كيف يمكنني حساب جميع العقد باسم محدد على الرغم من أنهم ليسوا أشقاء على سبيل المثال في XML التالية أريد حساب أرقام المنتجات من النوع -milk ولكن من جميع المتاجر. أريد أن أعرف ما إذا كانت هناك طريقة لاستخدام وظيفة العد وعدم تكافح مع العودة. يجب أن تكون النتيجة 4 لهذا المثال
<Shops><Shop>
<Product>
<Name>yogurt</Name>
<type>Milk</type>
</Product>
<Product>
<Name>cheese</Name>
<type>Milk</type>
</Product>
<Product>
<Name>bread</Name>
<type>Bakery</type>
</Product> </Shop> <Shop>
<Product>
<Name>yellow cheese</Name>
<type>Milk</type>
</Product>
<Product>
<Name>chocolate milk</Name>
<type>Milk</type>
</Product>
<Product>
<Name>bagel</Name>
<type>Bakery</type>
</Product>
<Product>
<Name>candy</Name>
<type>Sweets</type>
</Product> </Shop></Shops>
المحلول
هذا يتجنب البطيء "//
" المشغل أو العامل.
count(/Shops/Shop/Product[type = 'Milk'])
نصائح أخرى
count(//Product[type='Milk'])
//
يجد جميع العقد المطابقة في أي مكان في المستند.
لا تنتمي إلى StackOverflow