인간이 읽을 수있는 방식으로 임의의 텍스트를 XML로 인코딩하는 좋은 방법은 무엇입니까?
-
09-12-2019 - |
문제
지금까지 텍스트를 CDATA 태그에 넣고 여러 개의 인접한 CDATA로 분할하여 텍스트에 나타나는 CDATA 엔딩의 가능성을 다루는 것입니다.
나는 이것에 대해 확실하지 않지만 XML 파서는 CDATA 태그 내부의 뉴라인을 보존하지 못할 수 있습니까?이것은 어떻게 든 그들도 탈출하는 것을 의미합니다 ...
PERL을 사용하여 이러한 XML 파일을 생성하고 C ++ (EXPAT), Java 및 C #. 을 C ++로 구문 분석하고 싶습니다.
가장 중요한 것은 결과 파일이 다소 인간이 읽을 수 있거나 수정할 수 있도록 원합니다.이러한 요구에 맞는 인코딩 계획을 알고있는 사람은 누구입니까?이 기능을 사용하여 데이터베이스에 대한 데이터를 저장하고 임의의 텍스트를 수락해야하며 구문 분석하면 똑같은 텍스트를 반환 할 때
해결책
XML은 이미 지원하며 특별한 작업을 수행 할 필요가 없으며 확실히 CDATA를 사용할 필요가 없습니다.괜찮은 라이브러리를 사용하고 UTF-8 인코딩을 사용하고 있는지 확인하고 텍스트 노드를 추가하십시오.무언가가 "잃어버린"이라면 뉴 라인이 그 버그입니다.XML에는 이미 비교적 인간이 읽을 수있는 "인코딩"(탈출)이 있습니다.그것은 또한 당신 자신의 발명품을 발명하는 것보다 훨씬 유용하게 만드는 표준입니다.
다른 팁
콘텐츠가 HTML이라면 콘텐츠를 인코딩 할 수 있습니다.
<html><b>Bold Text</b></html>
.
vs.
<html><![CDATA[<b>Bold Text</b>]]></html>
. 흠, CDATA 섹션이 문자 데이터에 대해 알려주고 제어 문자가 계산되지 않습니다.나는 이것이 뉴 라인의 문제에 대해 XML 파서가 제어 문자인지 여부 (역사적으로, 그렇습니다. "아니오, 아니오) 에 대한 판결 전화를합니다.
가독성을 손상시키는 동안 이스케이프 시퀀스를 사용하여 개회를 인코딩 할 수 있습니다. 구문 분석을 통해 구문 분석을 제대로 변환해야한다고 가정하면 인코딩 할 때 메모를 작성해야합니다.
인간이 읽을 수있는 "요구 사항을 완전히 위반하는 또 다른 옵션은 BOSTE-64 텍스트를 인코딩하는 것입니다. 이렇게하면 XML의 임의의 정보를 인코딩 할 수 있습니다.