인간이 읽을 수있는 방식으로 임의의 텍스트를 XML로 인코딩하는 좋은 방법은 무엇입니까?

StackOverflow https://stackoverflow.com//questions/9608978

  •  09-12-2019
  •  | 
  •  

문제

지금까지 텍스트를 CDATA 태그에 넣고 여러 개의 인접한 CDATA로 분할하여 텍스트에 나타나는 CDATA 엔딩의 가능성을 다루는 것입니다.

나는 이것에 대해 확실하지 않지만 XML 파서는 CDATA 태그 내부의 뉴라인을 보존하지 못할 수 있습니까?이것은 어떻게 든 그들도 탈출하는 것을 의미합니다 ...

PERL을 사용하여 이러한 XML 파일을 생성하고 C ++ (EXPAT), Java 및 C #. 을 C ++로 구문 분석하고 싶습니다.

가장 중요한 것은 결과 파일이 다소 인간이 읽을 수 있거나 수정할 수 있도록 원합니다.이러한 요구에 맞는 인코딩 계획을 알고있는 사람은 누구입니까?이 기능을 사용하여 데이터베이스에 대한 데이터를 저장하고 임의의 텍스트를 수락해야하며 구문 분석하면 똑같은 텍스트를 반환 할 때

도움이 되었습니까?

해결책

XML은 이미 지원하며 특별한 작업을 수행 할 필요가 없으며 확실히 CDATA를 사용할 필요가 없습니다.괜찮은 라이브러리를 사용하고 UTF-8 인코딩을 사용하고 있는지 확인하고 텍스트 노드를 추가하십시오.무언가가 "잃어버린"이라면 뉴 라인이 그 버그입니다.XML에는 이미 비교적 인간이 읽을 수있는 "인코딩"(탈출)이 있습니다.그것은 또한 당신 자신의 발명품을 발명하는 것보다 훨씬 유용하게 만드는 표준입니다.

https://stackoverflow.com/a/1140802/181772

다른 팁

콘텐츠가 HTML이라면 콘텐츠를 인코딩 할 수 있습니다.

<html>&lt;b&gt;Bold Text&lt;/b&gt;</html>
.

vs.

<html><![CDATA[<b>Bold Text</b>]]></html>
.

흠, CDATA 섹션이 문자 데이터에 대해 알려주고 제어 문자가 계산되지 않습니다.나는 이것이 뉴 라인의 문제에 대해 XML 파서가 제어 문자인지 여부 (역사적으로, 그렇습니다. "아니오, 아니오) 에 대한 판결 전화를합니다.

가독성을 손상시키는 동안 이스케이프 시퀀스를 사용하여 개회를 인코딩 할 수 있습니다. 구문 분석을 통해 구문 분석을 제대로 변환해야한다고 가정하면 인코딩 할 때 메모를 작성해야합니다.

인간이 읽을 수있는 "요구 사항을 완전히 위반하는 또 다른 옵션은 BOSTE-64 텍스트를 인코딩하는 것입니다. 이렇게하면 XML의 임의의 정보를 인코딩 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top