كيفية حساب العقد المحددة في Hierachy XML تعتمد على الحالة في XSL

StackOverflow https://stackoverflow.com/questions/1367552

  •  21-09-2019
  •  | 
  •  

سؤال

أنا أكتب ورقة أنماط في 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'])

// يجد جميع العقد المطابقة في أي مكان في المستند.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top