문제

XSLT에 html 엔티티를 포함하는 가장 좋은 방법은 무엇입니까? 라코 디스

이 코드는 XsltParseError 를 반환합니다.

도움이 되었습니까?

해결책

CDATA 섹션을 사용할 수 있습니다. 라코 디스

또는 로컬 DTD에서 & nbsp를 설명 할 수 있습니다. 라코 디스

또는   대신  를 사용하세요.

다른 팁

aku의 답변 과 다음과 같이 알려진 모든 문자 참조를 얻을 수 있습니다. 라코 디스

<xsl:text disable-output-escaping="yes"> 접근 방식과 비교하여 결과에 특정 차이가 있습니다. 후자는 &nbsp;에 대해서도 모든 종류의 출력에 대해 <xsl:output method="text">와 같은 문자열 리터럴을 생성 할 것이며, 이것은 여러분이 원하는 것과 다를 수 있습니다 ... 반대로 <!DOCTYPE ... <!ENTITY ...를 통해 XSLT 템플릿에 대해 정의 된 엔티티를 가져 오는 것은 항상 xsl:output 설정과 일치하는 출력을 생성합니다.

그러면 XSLT 엔진이 인터넷에서 문자 엔티티 정의를 가져 오지 못하도록 로컬 엔티티 리졸버를 사용하는 것이 현명 할 수 있습니다. JAXP 또는 명시 적 Xalan-J 사용자는 리졸버를 올바르게 사용하기 위해 Xalan-J 용 패치가 필요할 수 있습니다. 내 블로그 XSLT, 엔티티, Java, Xalan .. . 패치 다운로드 및 의견.

xslt 내에서 html 엔티티를 사용할 수있는 또 다른 가능성은 다음과 같습니다. 라코 디스

XSLT는 기본적으로 lt, gt, apos, quot, amp의 다섯 가지 기본 항목 만 처리합니다.다른 모든 항목은 @Aku 멘션으로 정의되어야합니다..

<인용구>

이 코드는 XsltParseError 를 반환합니다.

예, 그 이유는 &nbsp;가 HTML 에서처럼 XML 또는 XSLT에서 미리 정의 된 엔티티가 아니기 때문입니다.

&nbsp;가 나타내는 유니 코드 문자를 사용할 수 있습니다 : &#160;

이제 유니 코드가 있으므로 이름이 지정된 문자 엔티티를 사용하는 것은 일반적으로 비생산적입니다.그 이유 때문에 엔터티 대신 중단되지 않는 공백에 유니 코드 문자를 사용하는 것이 좋습니다.또는 명명 된 엔터티 대신 &#160; 엔터티를 사용할 수 있습니다.명명 된 엔터티를 사용하면 XML이 인라인 또는 외부 DTD에 종속됩니다.

이 모든 솔루션이 공백에 Â 문자를 생성하는 것을 발견했습니다.

<xsl:text> </xsl:text>를 사용하면 문제가 해결되었습니다.하지만 <xsl:text>#x20;</xsl:text>도 작동 할 수 있습니다.

정보를 제공해 주셔서 감사합니다. Dynamicweb CMS .

블로그 게시물 : XSLT 템플릿에 항목을 추가하는 방법 .

/ Sten Hougaard

# x160; 엔티티를 사용해야합니다.

Aku의 DOCTYPE 접근 방식에는 운이 없었습니다.

Windows 2003 서버에서 MSXML 변환에서 저에게 효과가 있었던 것은 다음과 같습니다. 라코 디스

위의 일종의 하이브리드.Stackoverflow 기여자에게 감사드립니다!

텍스트 태그 사이에 공백 문자 하나이면 충분합니다.

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