문제

나는 줄을 잡으려고 노력하고있다 "<BR>"vb.net에서 XSLT를 통해 HTML로 변환합니다. 그러나 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에 대한 기본값이 실제로있는 코너 케이스가 있지만, 나는 그것이 보편적이라고 생각하지 않으며 그것에 의존하는 일종의 둔감이라고 생각합니다.

다른 팁

그것을 마무리 해보세요 <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>").

그러나 당신은 xslt를 의미합니다. 그래서 나는 약간의 변화가 진행되고 있다고 생각합니다. 이 경우 확실히 변환은 올바른 위치에 노드로 삽입해야합니다. 더 나은 질문은 더 나은 답변을 얻을 것입니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top