>  기사  >  백엔드 개발  >  .NET Framework에서 XML 데이터를 쉽게 처리(4-2)

.NET Framework에서 XML 데이터를 쉽게 처리(4-2)

黄舟
黄舟원래의
2016-12-20 14:13:441532검색

XML 작성기의 그림 7 상태

상태
설명

속성
작성기는 속성이 기록될 때 이 상태에 들어갑니다.

닫힘
Close 메소드가 호출되었으며 작성자는 더 이상 쓰기 작업을 수행할 수 없습니다.

콘텐츠
작성자는 노드의 콘텐츠가 작성될 때 이 상태로 들어갑니다.

요소
작성자는 요소 시작 태그가 작성될 때 이 상태에 들어갑니다.

프롤로그
작성자는 올바른 형식의 XML 1.0 문서의 프롤로그를 작성 중입니다.

시작
작성자는 쓰기 호출이 실행되기를 기다리는 초기 상태입니다.


??Writer는 출력 텍스트를 내부 버퍼에 저장합니다. 일반적으로 버퍼는 플러시되거나 지워지며, 작성기가 닫히기 전에 XML 텍스트를 작성해야 합니다. 언제든지 Flush 메서드를 호출하여 버퍼를 지우고 현재 콘텐츠를 스트림(BaseStream 속성을 통해 노출됨)에 쓴 다음 점유된 메모리의 일부를 해제할 수 있으며 Writer는 계속해서 열린 상태로 제어될 수 있습니다. . 문서 내용의 일부가 작성되었더라도 Writer가 닫히기 전에는 다른 프로그램에서 문서를 처리할 수 없습니다.

??속성 노드를 작성하는 데는 두 가지 방법을 사용할 수 있습니다. 첫 번째 방법은 WriteStartAtribute 메서드를 사용하여 새 특성 노드를 만들고 작성기의 상태를 업데이트하는 것입니다. 그런 다음 WriteString 메서드를 사용하여 속성 값을 설정합니다. 작성한 후 WriteEndElement 메서드를 사용하여 노드를 종료합니다. 또한 WriteAttributeString 메서드를 사용하여 새로운 특성 노드를 생성할 수도 있습니다.writerr의 상태가 Element이면 WriterAttributeString이 작동하기 시작하고 별도의 특성을 생성합니다. 마찬가지로 WriteStartElement 메서드는 노드의 여는 태그(<)를 쓴 다음 노드의 속성과 텍스트 내용을 원하는 대로 설정할 수 있습니다. 요소 노드의 닫는 태그에는 모두 "/ >"가 있습니다. 닫는 태그를 작성하려면 WriteFullEndElement 메서드를 사용하여 작성할 수 있습니다.

??미만 기호(<)와 같은 민감한 마크업 문자가 포함된 쓰기 메서드에 텍스트가 전달되는 것을 피해야 합니다. WriteRaw 메서드를 사용하여 스트림에 작성된 문자열은 구문 분석되지 않습니다. 이를 사용하여 XML 문서에 특수 문자열을 쓸 수 있습니다. 다음 두 줄의 코드에서 첫 번째 줄은 "<"를 출력하고 두 번째 줄은 "<"를 출력합니다.

writer.WriteString('<')

writer. WriteRaw('<');



??읽기 및 쓰기 스트림

??흥미롭게도 reader(browser) 및 작성기 클래스는 Base64 및 BinHex 인코딩을 기반으로 데이터 스트림을 읽고 쓰는 방법을 제공합니다. WriteBase64 및 WriteBinHex 메서드의 기능은 다른 쓰기 메서드의 기능과 약간 다릅니다. 둘 다 스트림 기반이며 이 두 메서드는 문자열이 아닌 바이트 배열처럼 작동합니다. 다음 코드는 먼저 문자열을 바이트 배열로 변환한 다음 Base64로 인코딩된 스트림에 씁니다. Encoding 클래스의 GetBytes 정적 메서드는 변환 작업을 완료합니다:

writer.WriteBase64(

Encoding.Unicode.GetBytes(buf),

0, buf.Length* 2) ;

위 내용은 .NET Framework에서 XML 데이터를 쉽게 처리하는 내용(4-2)이며, 더 많은 관련 내용은 PHP 중국어 홈페이지(www.kr)를 참고하시기 바랍니다. .php.cn)!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.