한글 - 앰퍼샌드를 XML에서 이스케이프 처리하여 HTML의 엔터티로 렌더링하는 방법은 무엇입니까?




자바 escape (8)

HTML 페이지에서 렌더링하고자하는 XML 텍스트가 있습니다. 이 텍스트에는 엔티티 표현으로 렌더링하려는 앰퍼샌드가 포함되어 있습니다. & .

소스 XML에서이 앰퍼샌드를 어떻게 피할 수 있습니까? 나는 노력했다 & , 그러나 이것은 HTML에서 유효하지 않은 실제 앰퍼샌드 문자 ( & )로 디코딩됩니다.

그래서 나는 그것을 & 로 표현 될 수있는 방식으로 그것을 벗어나고 싶다 & XML 출력을 사용하는 웹 페이지에서.


CDATA 태그?

     <![CDATA[
       This is some text with ampersands & other funny characters. >>
     ]]>

XML에 &amp;amp; 이 경우 &amp; .

HTML에서 사용하면 & 로 렌더링됩니다.


관련 문제는 XML 요소 콘텐츠가 앰퍼샌드를 포함하는 경우 (XML이 GET 작업으로 제출 된 URI의 일부인 경우) 인코딩하는 방법입니다. (그런 API의 지혜를 떠나서 - 오늘 처리해야 할 것이 었습니다.) 위에서 언급 한 모든 것을 시도했지만, 실제로 효과가 있었던 것은 %26amp; 앰퍼샌드에 대한 XML 인코딩의 첫 번째 문자를 URL 인코딩하는 데 %26 이 필요했습니다. amp; URI의 XML 부분이 XML 문서 서버 측에로드되기 때문에 %26 다음에 필요했습니다. 따라서이 재미있는 시나리오에서는 인코딩 방법론을 함께 스테이플 링해야했습니다.


나는 시도하고 amp,하지만 작동하지 않았다. Wim ten Brink의 대답을 바탕으로 나는 & amp; amp를 시도했고 효과가있었습니다.

동료 개발자 중 한 명이 & # x26; 그것이 렌더링 될 수있는 횟수에 관계없이 작동합니다.


제 경우에는 %26 으로 변경해야했습니다.

URL에서 & 탈출해야했습니다. 그래서 &amp; 나를 위해 잘되지 않았다. urlencode 함수가 &%26 변경합니다. 이 방법으로 XML이나 브라우저 URL 메커니즘이 URL에 대해 불평하지 않았습니다.


& 문자 자체는 XML에서 이스케이프 문자이므로 솔루션은이를 & 와 유니 코드 10 진수로 연결하여 & 는 XML 구문 분석 오류가 없음을 확인합니다. 즉, 문자 &&#038; .


&amp; XML 문서의 대부분 섹션에서 앰퍼샌드를 나타내는 방법입니다.

HTML 내에 XML을 표시하려면 먼저 &amp; 를 변경하고 & 를 사용하여 적절하게 인코딩 된 XML을 만든 다음이를 사용하여 적절하게 인코딩 된 HTML을 작성해야합니다 ( & 를 다시 변경해야 &amp; ). 결과는 다음과 같습니다.

&amp;amp;

XML 인코딩에 대한 자세한 설명은 다음을 참조하십시오.

XML 문서에서 어떤 문자를 이스케이프해야합니까?


<xsl:text disable-output-escaping="yes">&amp;&nbsp;</xsl:text> 이 트릭을 수행합니다.





xml