XML 파일을 읽고 NSXMLDocument 객체로 변환했습니다. 그러나 노드의 문자열 내용에 "<"이 있기 때문에 "& lt"으로 변환되었습니다. 그래서 XML 문서로 파일에 쓸 때 "& lt"문자가 들어 있습니다.<xml 문서로 변환합니다
"& lt"이 "<"으로 바뀌는 일반 XML 파일로 파일에 쓸 수있는 방법은 무엇입니까?
감사와 안부, 레닌
XML 파일을 읽고 NSXMLDocument 객체로 변환했습니다. 그러나 노드의 문자열 내용에 "<"이 있기 때문에 "& lt"으로 변환되었습니다. 그래서 XML 문서로 파일에 쓸 때 "& lt"문자가 들어 있습니다.<xml 문서로 변환합니다
"& lt"이 "<"으로 바뀌는 일반 XML 파일로 파일에 쓸 수있는 방법은 무엇입니까?
감사와 안부, 레닌
문자 노드에 <
문자가 표시되면 xml을 파일에 쓸 때 <
으로 직렬화됩니다.
xml 파서로 해당 파일을 나중에 읽으면 텍스트 노드에 원래 <
문자가 포함됩니다.
텍스트 노드를 CDATA로 인코딩 할 수도 있습니다. 이 경우 직렬화 된 문자는 CDATA 블록 안에 <
입니다. 많은 XML API는 CDATA와 텍스트 노드 사이의 차이를 유지하지 않습니다. CDATA는 인간 제작자가 쉽게 편집 할 수 있도록하는 탈출 메커니즘으로 생각되어야합니다.
는 XML의 텍스트 노드의 <
은 <
로 표현되어야한다.
xml 파일에 쓰기 전에 s/</</g
을 사용하여 바꾸면 해당 파일에서 읽을 때 구문 분석 오류가 발생합니다.
당신은 작동
반드시 htmlspecialchars 및
를 htmlentities()는 XML 태그의 일부가 아니다 때
<
문자를 이스케이프해야합니다
을 그 반대의 작업을 수행하는 다음과 같은 기능을 사용할 수 있습니다 (see here). 당신이, 당신이 당신의 XML 문서를 작성하기 전에 트릭을 수행 할 수 있어야합니다 경우 당신은 정말, 그러나 ...
를 XML 스펙을 중단해서는 안 :
<
의 인스턴스를 교체하는 이 XML 파서에 의해 이스케이프되지 않습니다 (파일의 다른 곳에서는 발생하지 않음). *-lt-*
과 같은 항목이 될 수 있습니다.<
문자로 인스턴스를 *-lt-*
의 를 교체합니다.다시 말해 XML 사양을 위반하는 것은 끔찍한 생각입니다. 이렇게하면 파서가 새 XML 문서를 읽을 수 없습니다.
당신이 PHP를 통해 XML 문서에 <에 & LT를 교체하려면 : 나는 XML을 통해 서버에서 뉴스 피드를 받고 다음 다른 xml 파일로 저장하고
$xmlFile = file_get_contents("example.xml");
$xml= str_replace(['<','>'],['<','>'], $xmlFile);
echo $xml;
을, 나는을에 geting있어 결과는 <
과 >
이므로이 방법을 사용했습니다. 그것은 XML을 저장하는 가장 똑똑한 방법은 아니지만 나는 프로 메가 선배가 아니다.
감사합니다. 그것을 확인할 것입니다. – boom
안녕하세요, 내 코드는 코코아입니다. htmlspecialchars 및 htmlentities가 아닌 코코아로 변환 할 수있는 대체 방법을 제공 할 수 있습니까? – boom
@ Lenin : 죄송합니다. 나는 cocao를 알지 못합니다. – Pavunkumar