بالنظر إلى ملف XML هذا، هل يوجد xpath الذي سيعطيني قيمتي "الاختبار" و"الاسم"؟

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

  •  01-07-2019
  •  | 
  •  

سؤال

أحتاج إلى الحصول على قيمة سمة "الاختبار" في علامة xsl:When، والسمة "name" في علامة xsl:call-template.هذا xpath يجعلني قريبًا جدًا:

..../xsl:template/xsl:choose/xsl:when

ولكن هذا يؤدي فقط إلى إرجاع عناصر "متى"، وليس قيم السمات المحددة التي أحتاجها.

فيما يلي مقتطف من ملف XML الخاص بي:

<xsl:template match="field">
    <xsl:choose>
    <xsl:when test="@name='First Name'">
        <xsl:call-template name="handleColumn_1" /> 
    </xsl:when>
</xsl:choose>
هل كانت مفيدة؟

المحلول

أجاب ستيف كوبر على الجزء الأول.بالنسبة للجزء الثاني يمكنك استخدام:

.../xsl:template/xsl:choose/xsl:when[@test="@name='First Name'"]/xsl:call-template/@name

والتي سوف تتطابق على وجه التحديد مع xsl:عندما تكون في المقتطف أعلاه.إذا كنت تريد أن تتطابق بشكل عام، فيمكنك استخدام:

.../xsl:template/xsl:choose/xsl:when/xsl:call-template/@name

نصائح أخرى

هل تريد .../xsl:template/xsl:choose/xsl:when/@test

إذا كنت تريد بالفعل الحصول على قيمة "الاسم الأول" من سمة الاختبار، فلن يحالفك الحظ - فالمحتوى الموجود داخل السمة هو مجرد سلسلة، وليس جزءًا من XML، لذلك لا يمكنك xpath .إذا كنت تريد الحصول على ذلك، فيجب عليك استخدام معالجة السلسلة (على سبيل المثال، سلسلة فرعية) للحصول على المحتوى المناسب

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