سؤال

أحاول أخذ السلسلة "<BR>" في VB.NET وتحويله إلى HTML من خلال XSLT.عندما يظهر HTML، يبدو كما يلي:

&lt;BR&gt;

لا أستطيع إلا أن أفترض أنه يمضي قدمًا ويحاول تقديمه.هل هناك أي طريقة يمكنني تحويل تلك &lt;/&gt; العودة إلى الأقواس حتى أحصل على فاصل الأسطر الذي أحاول تحقيقه؟

هل كانت مفيدة؟

المحلول

تحقق من أن XSLT يحتوي على:

<xsl:output method="html"/>

يحرر:التوضيح من التعليقات

بشكل افتراضي، يتم إخراج XSLT كـ XML(1) مما يعني أنه سيتجنب أي أحرف مهمة.يمكنك تجاوز هذا في حالات محددة باستخدام السمة disable-output-escaping="yes" (مقدمة هنا) ولكن الأمر الأكثر فعالية هو تغيير الإخراج إلى القيمة الصريحة لـ HTML والتي تمنح نفس الميزة عالميًا، على النحو التالي:

  • بالنسبة لعناصر البرنامج النصي والأناقة ، استبدل أي شخصيات هاربة (مثل & و>) بقيمها الفعلية (& و> ، على التوالي).
  • بالنسبة للسمات، استبدل أي تكرارات لـ > بـ >.
  • اكتب عناصر فارغة مثل <br>, <img>, ، و <input> دون إغلاق العلامات أو المائل.
  • اكتب السمات التي تنقل المعلومات حسب وجودها بدلاً من قيمتها ، مثل الفحص وتحديدها ، في شكل تقليل.

من IBM الصلبة شرط تغطية الموضوع، تغطية أحدث من stylusstudio هنا

إذا كان إخراج HTML هو ما تريده، فإن إخراج HTML هو ما يجب عليك تحديده.

(1) هناك بالفعل حالة زاوية حيث يكون الإخراج الافتراضي هو HTML، لكنني لا أعتقد أنه عالمي ومن المنفرج نوعًا ما الاعتماد عليه.

نصائح أخرى

وحاول wraping ومع <xsl:text disable-output-escaping="yes">&lt;br&gt;</xsl:text>

لا أعرف عن XSLT ولكن..

قد يكون أحد الحلول هو استخدام HttpUtility.HtmlDecode من مساحة الاسم System.Web.

using System;
using System.Web;

class Program
{
    static void Main()
    {
        Console.WriteLine(HttpUtility.HtmlDecode("&lt;br&gt;"));
        Console.ReadKey();
    }
}

...

وحصلت عليه! على رأس الجواب المحدد، كما أنني فعلت شيئا مشابها لهذا في سلسلة بلدي:

htmlString = htmlString.Replace("&lt;","<")
htmlString = htmlString.Replace("&gt;",">")

وأعتقد، على الرغم من أنه في نهاية المطاف، وأنا قد فقط في نهاية المطاف باستخدام علامات <pre> للحفاظ على كل شيء.

والسلسلة "<br>" هو بالفعل HTML بحيث يمكنك فقط Response.Write("<br>").

ولكن كنت meantion XSLT لذلك أتصور أن هناك بعض التحويل يحدث. في هذه الحالة بالتأكيد يجب إدراجه في المكان الصحيح كما عقدة تحويل. وهناك مسألة أفضل من المحتمل الحصول على الجواب الأفضل

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