تحويل XML باستخدام XSLT

ينطبق على: جميع مستويات إدارة واجهة برمجة التطبيقات

يطبق نهج xsl-transform تحويل XSL إلى XML في نص الطلب أو الاستجابة.

إشعار

تعيين عناصر النهج والعناصر التابعة بالترتيب الوارد في بيان النهج. تعلم كيفية إعداد نُهج APIM أو تعديلها.

نهج السياسة

<xsl-transform>
    <parameter parameter-name="...">...</parameter>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:.../>
        <xsl:.../>
    </xsl:stylesheet>
  </xsl-transform>

عناصر

Name ‏‏الوصف مطلوب
المعلمة تستخدم لتعريف المتغيرات المستخدمة في التحويل لا
لغة صفحات الأنماط الموسعة: ورقة أنماط عنصر ورقة أنماط الجذر. تتبع جميع العناصر والسمات المحددة داخل مواصفات XSLT القياسية. ‏‏نعم‬

الاستخدام

  • أقسام النهج: الواردة والصادرة
  • نطاقات النهج: العمومية، ومساحة العمل، والمنتج، وواجهة برمجة التطبيقات، والتشغيل
  • البوابات: الكلاسيكية، الإصدار 2، الاستهلاك، المستضافة ذاتيا

ملاحظات الاستخدام

  • يمكن استخدام هذا النهج مرة واحدة فقط في قسم النهج.
  • حاليا، يدعم هذا النهج الإصدار 1.0 من XSLT.

الأمثلة

تحويل نص الطلب

<inbound>
    <base />
    <xsl-transform>
        <parameter name="User-Agent">@(context.Request.Headers.GetValueOrDefault("User-Agent","non-specified"))</parameter>
        <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
            <xsl:output method="xml" indent="yes" />
            <xsl:param name="User-Agent" />
            <xsl:template match="* | @* | node()">
                <xsl:copy>
                    <xsl:if test="self::* and not(parent::*)">
                        <xsl:attribute name="User-Agent">
                            <xsl:value-of select="$User-Agent" />
                        </xsl:attribute>
                    </xsl:if>
                    <xsl:apply-templates select="* | @* | node()" />
                </xsl:copy>
            </xsl:template>
        </xsl:stylesheet>
      </xsl-transform>
</inbound>

تحويل نص الاستجابة

<policies>
  <inbound>
      <base />
  </inbound>
  <outbound>
      <base />
      <xsl-transform>
          <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
            <xsl:output omit-xml-declaration="yes" method="xml" indent="yes" />
            <!-- Copy all nodes directly-->
            <xsl:template match="node()| @*|*">
                <xsl:copy>
                    <xsl:apply-templates select="@* | node()|*" />
                </xsl:copy>
            </xsl:template>
          </xsl:stylesheet>
    </xsl-transform>
  </outbound>
</policies>

لمزيد من المعلومات حول العمل مع النُهج، راجع: