XML의 앰퍼샌드가 HTML의 엔티티로 렌더링되도록 하려면 어떻게 해야 합니까?
HTML 페이지로 렌더링하고 싶은 XML 텍스트가 있습니다.이 텍스트에는 앰퍼샌드가 포함되어 있으며, 도면요소 표현에서 렌더링하고자 합니다.&
.
소스 XML에서 이 앰퍼샌드를 탈출하려면 어떻게 해야 합니까?&
, 그러나 이는 실제 앰퍼샌드 문자로 디코딩됩니다(&
), HTML에서는 유효하지 않습니다.
그래서 나는 그것이 다음과 같이 렌더링되는 방식으로 그것을 탈출하고 싶습니다.&
XML 출력을 사용하는 웹 페이지에서.
XML에 다음이 포함된 경우&
, 이것은 결과적으로 텍스트가 될 것입니다.&
.
HTML에서 그것을 사용하면 다음과 같이 렌더링됩니다.&
.
XML 1.0 사양의 §2.4에 따라, 당신은 다음을 사용할 수 있을 것입니다.&
.
저는 시도해 보았지만 이것은 허용되지 않습니다.
다른 문제가 아닌 게 확실합니까?XML은 이를 앰퍼샌드를 탈출하는 방법으로 명시적으로 정의합니다.
그&
문자는 그 자체가 XML에서 탈출 문자이므로 해결책은 그것과 유니코드 10진법을 연결하는 것입니다.&
따라서 XML 구문 분석 오류가 발생하지 않도록 보장합니다.즉, 문자를 바꿉니다.&
와 함께
사용하다CDATA
태그:
<![CDATA[
This is some text with ampersands & other funny characters. >>
]]>
&
잘 될 겁니다위키백과에는 XML에 미리 정의된 엔티티 목록이 있습니다.
제 경우에는 다음으로 변경해야 했습니다.%26
.
탈출할 필요가 있었습니다.&
URL에. 그래서.&
저한테는 잘 안 됐어요urlencode 함수가 변경됩니다.&
로.%26
. 이렇게 하면 XML이나 브라우저 URL 메커니즘 모두 URL에 대해 불평하지 않습니다.
시도해 보았지만 소용이 없었습니다.Wim ten Brink의 답변을 바탕으로 시도해 보았는데 효과가 있었습니다.
동료 개발자 중 한 명이 &을 사용해보라고 제안했는데, 렌더링 횟수에 상관없이 효과가 있었습니다.
&
는 XML 문서의 대부분의 섹션에서 앰퍼샌드를 나타내는 방법입니다.
HTML 내에 XML을 표시하려면 먼저 적절히 인코딩된 XML을 작성해야 합니다(여기에는 변경 내용이 포함됨).&
로.&
를 사용하여 제대로 인코딩된 HTML을 만듭니다(다시 변경해야 함).&
로.&
). 결과는 다음과 같습니다.
&amp;
XML 인코딩에 대한 자세한 설명은 다음을 참조하십시오.
<xsl:text disable-output-escaping="yes">& </xsl:text>
효과가 있을 겁니다
XML이 아래와 같은지 고려해 보십시오.
<Employees Id="1" Name="ABC">
<Query>
SELECT * FROM EMP WHERE ID=1 AND RES<>'GCF'
<Query>
</Employees>
사용할 수 없습니다.<>
직접적으로 오류를 발생시킵니다.그런 경우에는 사용할 수 있습니다.<>
그 대신에
<Employees Id="1" Name="ABC">
<Query>
SELECT * FROM EMP WHERE ID=1 AND RES <> 'GCF'
<Query>
</Employees>
14.1 XML에서 특수문자를 사용하는 방법은 모든 코드가 있습니다.
언급URL : https://stackoverflow.com/questions/1328538/how-do-i-escape-ampersands-in-xml-so-they-are-rendered-as-entities-in-html
'programing' 카테고리의 다른 글
Jupyter 노트북에는 두마리의 판다 테이블이 나란히 전시되어 있습니다. (0) | 2023.09.10 |
---|---|
ASP를 연결합니다.NET to Amazon RDS MariaDB (0) | 2023.09.10 |
TCP 프로토콜이 아닌 파일 소켓과 연결하는 방법? (0) | 2023.09.10 |
유형의 일치하는 빈이 없습니다...종속성이 있는 것으로 확인됨 (0) | 2023.09.10 |
제약 조건 위반 시 사용자 친화적 오류 메시지를 제공할 수 있는 방법이 있습니까? (0) | 2023.09.10 |