Java 응용 프로그램에서 CDATA 내에 제어 문자 0x2
이 포함 된 XML 문서를 구문 분석해야합니다.XML1.1을 사용하여 유니 코드 문자 (0x2) 구문 분석
몇 가지 방법을 시도했지만 coudnt가 통과했습니다. 어떤 종류의 인코딩도 피하고 싶습니다.
XML1.1에는 어떤 방법이 있습니까?
Java 응용 프로그램에서 CDATA 내에 제어 문자 0x2
이 포함 된 XML 문서를 구문 분석해야합니다.XML1.1을 사용하여 유니 코드 문자 (0x2) 구문 분석
몇 가지 방법을 시도했지만 coudnt가 통과했습니다. 어떤 종류의 인코딩도 피하고 싶습니다.
XML1.1에는 어떤 방법이 있습니까?
XML은 ASCII 제어 문자 (TAB, CR 및 LF 제외)를 포함 할 수 없으며 CDATA 섹션에도 포함될 수 없습니다. 그것들은 XML 스펙에 의해 허용되지 않습니다.
이진 데이터를 Base64 문자열로 인코딩하여 XML에 씁니다. 이 경우에는 CDATA가 필요 없습니다.
첫 번째 부분은 XML 1.0에만 해당됩니다. XML 1.1에서는 이러한 문자를 문자 참조로 사용할 수 있습니다. XML 1.1은 널리 채택되지 않았습니다. Tomalak에서 제안한대로 XML 1.0을 사용하여 이진 데이터로 인코딩하는 것이 가장 쉽고 호환성있는 솔루션 일 것입니다. –
하지만 xml1.1에 대한 내용은 xml1.0에서 지원되지 않는 유니 코드 문자가 xml1.1에서 지원되는 것으로 보입니까? –
그들은 XML 1.1에서 문서 내용의 일부일 수도 있지만 그래도 여전히 일련의 XML에서 문자 참조로만 유효합니다. (심지어 Tomalak이 말했듯이, XML에서 임의의 2 진 덩어리를 쓰는 것은 일반적으로 매우 나쁜 생각입니다.) – bobince
난 후,하지 XML의 CDATA
내부 제어 문자 0x2가 포함되어 XML을 구문 분석 할 필요가있다. 원시 제어 문자 U + 0002는 형식이 올바르지 않으므로 XML 문서가 아님을 의미합니다.
XML 1.1에만 문자 참조로 인코딩 된 제어 문자가 포함될 수 있습니다. 따라서 구문 분석을 수행하기 전에 \x02
문자열을 
으로 대체하여 문제를 해결하려고했을 수 있습니다. 그러나 CDATA 섹션에는 문자 참조를 넣을 수 없으므로 아무 것도 날아 가지 않습니다. 그러나
]]><![CDATA[
이것이다 :
편집 : 당신이 모든 길잃은 U + 0002 문자로 각각 대체하여, CDATA 섹션 안에 절대적으로 확신하는 경우 당신은 아마, 단기적으로 문제를 해결할 수 슈퍼 shonky. 처음부터 결함있는 XML을 생성 한 것은 무엇이든 수정해야합니다. 그것을 만드는 책임자를 차버 쳐라!
+1 잘못된 XML을 생성하는 사람들을 걷어차 기위한 +1. –
누군가 Rekordbox 2.0.3과 함께 나쁜 XML을 제작하기 위해 Pioneer를 차려 주시기 바랍니다 – Dimme
ms-word에서 추출한 텍스트와 같은 소리가납니다 :) –
그런데 유니 코드 코드 포인트 (특정 인코딩과 반대)를 나타내는 올바른 표기법은 'U + xxxx'입니다 (예 : 귀하의 경우 U + 0002) : http : //en.wikipedia. org/wiki/Unicode –