XSLT에서 HTML 엔티티 사용 (예 :)
XSLT에 html 엔티티를 포함하는 가장 좋은 방법은 무엇입니까?
<xsl:template match="/a/node">
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
이것은 XsltParseError를 반환합니다 .
CDATA 섹션을 사용할 수 있습니다.
<xsl:text disable-output-escaping="yes"><![CDATA[ ]]></xsl:text>
또는 로컬 DTD에서 & nbsp를 설명 할 수 있습니다.
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]>
또는  
대신 사용
aku의 대답의 두 번째 부분에서 접근 방식을 확장하고 다음 과 같이 알려진 모든 문자 참조를 사용할 수도 있습니다.
<!DOCTYPE stylesheet [
<!ENTITY % w3centities-f PUBLIC "-//W3C//ENTITIES Combined Set//EN//XML"
"http://www.w3.org/2003/entities/2007/w3centities-f.ent">
%w3centities-f;
]>
...
<xsl:text> −30°</xsl:text>
<xsl:text disable-output-escaping="yes">
접근 방식 과 비교하여 결과에 특정 차이가 있습니다 . 후자는
모든 종류의 출력 과 같은 문자열 리터럴을 생성 <xsl:output method="text">
할 것 입니다 . 그리고 이것은 당신이 원하는 것과 다를 수 있습니다 ... 반대로, XSLT 템플릿에 대해 정의 된 엔티티를 얻는 <!DOCTYPE ... <!ENTITY ...
것은 항상 일관된 출력을 생성합니다 당신과 함께 xsl:output
설정.
그러면 로컬 엔티티 리졸버를 사용하여 XSLT 엔진이 인터넷에서 문자 엔티티 정의를 가져 오지 못하도록하는 것이 현명 할 수 있습니다. JAXP 또는 명시 적 Xalan-J 사용자는 리졸버를 올바르게 사용하기 위해 Xalan-J 용 패치가 필요할 수 있습니다. 패치 다운로드 및 의견 은 내 블로그 XSLT, 엔터티, Java, Xalan ... 을 참조하십시오 .
xslt 내에서 html 엔티티를 사용할 수있는 또 다른 가능성은 다음과 같습니다.
<xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>
XSLT는 기본적으로 다섯 개 가지 기본 요소를 처리 : lt
, gt
, apos
, quot
,와 amp
. 다른 모든 것은 @Aku 멘션 으로 정의 되어야 합니다.
이것은 XsltParseError를 반환합니다 .
예, 그 이유
는 HTML 에서처럼 XML 또는 XSLT에서 미리 정의 된 엔티티가 아니기 때문입니다.
다음을 나타내는 유니 코드 문자를 사용할 수 있습니다
. 
이제 유니 코드가 있으므로 명명 된 문자 엔터티를 사용하는 것은 일반적으로 비생산적입니다. 그 이유 때문에 엔터티 대신 중단되지 않는 공백에 유니 코드 문자를 사용하는 것이 좋습니다. 또는  
명명 된 엔터티 대신 엔터티를 사용할 수 있습니다 . 명명 된 엔터티를 사용하면 XML이 인라인 또는 외부 DTD에 종속됩니다.
이 모든 솔루션이 공백에 Â 문자를 생성하는 것을 발견했습니다.
사용하면 <xsl:text> </xsl:text>
문제가 해결되었습니다. 하지만 <xsl:text>#x20;</xsl:text>
잘 작동 할 수 있습니다.
정보 감사합니다. Dynamicweb CMS 템플릿에서 XSLT 변환을 수행하면서 저에게 도움이 된 내용을 기반으로 짧은 블로그 게시물을 작성했습니다 .
블로그 게시물은 여기에 있습니다 : How to add entity to XSLT templates .
/ Sten Hougaard
엔티티 # x160 을 사용해야합니다 .
Aku의 DOCTYPE 접근 방식에는 운이 없었습니다.
Windows 2003 서버에서 MSXML 변환에서 저에게 효과가 있었던 것은
<xsl:text disable-output-escaping="yes">&#160;</xsl:text>
위의 일종의 하이브리드. Stackoverflow 기여자에게 감사드립니다!
텍스트 태그 사이에 하나의 공백 문자이면 충분합니다.
참고 URL : https://stackoverflow.com/questions/31870/using-an-html-entity-in-xslt-eg-nbsp
'developer tip' 카테고리의 다른 글
Kotlin에서 빈 배열을 만드는 방법은 무엇입니까? (0) | 2020.11.27 |
---|---|
React-Router 외부 링크 (0) | 2020.11.26 |
PHP를 사용하여 강제로 파일 다운로드 (0) | 2020.11.26 |
옵션의 텍스트 / 값이 주어지면 드롭 다운 목록에서 옵션을 제거하는 jQuery (0) | 2020.11.26 |
Java의 플랫폼 독립 경로 (0) | 2020.11.26 |