백엔드 개발 C#.Net 튜토리얼 .NET Framework에서 XML 데이터를 쉽게 처리 (5-1)

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

Dec 20, 2016 pm 02:18 PM
.net XML 데이터

??XmlReadWriter 클래스 설계

??앞서 언급했듯이 XML 판독기와 작성기는 독립적으로 작동합니다. 판독기는 읽기만 하고 쓰기만 합니다. 애플리케이션이 긴 XML 문서를 처리해야 하는데 문서에 불안정한 데이터가 있다고 가정해 보겠습니다. Reader는 문서의 내용을 읽는 좋은 방법을 제공합니다. 반면에 Writer는 XML 문서 조각을 만드는 데 매우 유용한 도구이지만 읽고 쓸 수 있게 하려면 XMLDOM을 사용해야 합니다. 실제 XML 문서가 매우 큰 경우 다른 제목이 표시됩니다. 이 모든 XML 문서를 메모리에 로드한 다음 나중에 읽고 써야 할까요? 먼저 대규모 XML DOM을 구문 분석하기 위한 하이브리드 스트림 분석기를 구축하는 방법을 살펴보겠습니다.

일반적인 읽기 전용 작업과 마찬가지로 일반 XML 리더를 사용하여 노드에 순차적으로 액세스합니다. 차이점은 XML 작성기를 사용하여 읽는 동안 속성 값과 노드 내용을 변경할 수 있다는 것입니다. 리더를 사용하여 소스 파일의 각 노드를 읽고 백그라운드 기록기가 노드의 복사본을 만듭니다. 이 복사본에서는 일부 새 노드를 추가하고, 다른 노드를 무시하거나 편집하고, 속성 값을 편집할 수 있습니다. 변경이 완료되면 이전 문서를 새 문서로 바꿉니다.

?? 간단하고 효과적인 방법은 읽기 전용 스트림에서 쓰기 스트림으로 노드 개체를 복사하는 것입니다. 이 방법은 XmlTextWriter 클래스에서 WriteAttributes 메서드와 WriteNode 메서드의 두 가지 메서드를 사용할 수 있습니다. WriteAttributes 메서드는 현재 판독기에서 선택된 노드의 유효한 특성을 모두 읽은 다음 해당 특성을 현재 출력 스트림에 별도의 문자열로 복사합니다. 마찬가지로 WriteNode 메서드는 유사한 메서드를 사용하여 특성 노드를 제외한 다른 유형의 노드를 처리합니다. 그림 10에 표시된 코드 조각은 위의 두 가지 방법을 사용하여 소스 XML 문서의 복사본을 만들고 특정 노드를 선택적으로 수정하는 방법을 보여줍니다. XML 트리는 트리 루트부터 액세스되지만 속성 노드 유형이 아닌 다른 유형의 노드만 출력됩니다. Reader와 Writer를 새 클래스에 통합하고 스트림을 읽고 쓰고 속성과 노드에 액세스할 수 있도록 새 인터페이스를 디자인할 수 있습니다.

그림 10 WriteNode 메서드 사용

XmlTextReader reader = new XmlTextReader(inputFile);

XmlTextWriter Writer = new XmlTextWriter(outputFile) >
//Reader 구성 및 작가

writer.Formatting = Formatting.Indented;

reader.MoveToContent()



// 루트 노드 쓰기

writer.WriteStartElement(reader.LocalName);



// 다른 모든 노드를 읽고 출력합니다.

int i=0; .Read())

{

if (i % 2)

writer.WriteNode(reader, false)

i

}



// 루트를 닫습니다

writer.WriteEndElement()



// 리더를 닫고 writer

writer.Close();

reader.Close();

??내 XmlTextReadWriter 클래스가 XmlWriter 클래스의 XmlReader 또는 Pertant에서 파생되지 않았습니다. 대신 클래스가 두 개 더 있는데, 하나는 읽기 전용 스트림(스트림)을 기반으로 하는 컨트롤 클래스이고, 다른 하나는 쓰기 전용 스트림을 기반으로 하는 컨트롤 클래스입니다. XmlTextReadWriter 클래스의 메서드는 Reader 개체를 사용하여 데이터를 읽고 이를 Writer 개체에 씁니다. 다양한 요구 사항에 적응하기 위해 내부 Reader 및 Writer 개체는 읽기 전용 Reader 및 Writer 속성을 통해 노출됩니다. 그림 11에는 이 클래스의 일부 메서드가 나열되어 있습니다. 그림 11 XmlTextReadWriter 클래스 메서드

메서드
설명

AddAttributeChange
노드 특성을 변경하는 데 필요한 모든 정보를 캐시합니다. 이 메서드를 통해 캐시된 변경 사항은 WriteAttributes에 대한 연속 호출 중에 처리됩니다.

Read
내부 판독기의 Read 메서드에 대한 간단한 래퍼

WriteAttributes
작성기 WriteAttributes의 특수 버전입니다. 메서드는 AddAttributeChange 메서드를 통해 캐시된 모든 변경 사항을 고려하여 지정된 노드에 대한 모든 속성을 기록합니다.

WriteEndDocument
작성기에서 현재 문서를 종료하고 판독기와 기록기를 모두 닫습니다.

WriteStartDocument
문서를 출력하고 기본 주석 텍스트와 표준 XML 프롤로그를 추가하도록 준비합니다.


?? Reader의 읽기 방법을 간단히 캡슐화한 것입니다. 또한 WriterStartDocument 및 WriteEndDocument 메서드를 제공합니다. 내부 Reader 및 Writer 개체를 각각 초기화/해제(완료)하고 모든 I/O 작업도 처리합니다. 루프에서 노드를 읽는 동안 노드를 직접 수정할 수 있습니다. 성능상의 이유로 먼저 AddAttributeChange 메서드를 사용하여 특성을 수정해야 합니다. 노드 특성에 대한 모든 수정 사항은 임시 테이블에 저장됩니다. 마지막으로 WriteAttribute 메서드를 호출하여 수정 사항이 제출되고 임시 테이블이 지워집니다.

위 내용은 .NET Framework에서 XML 데이터를 쉽게 처리하는 내용(5-1)입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Python은 XML 데이터 필터링 및 필터링을 구현합니다. Python은 XML 데이터 필터링 및 필터링을 구현합니다. Aug 09, 2023 am 10:13 AM

Python은 XML 데이터 필터링 및 필터링을 구현합니다. XML(eXtensibleMarkupLanguage)은 데이터를 저장하고 전송하는 데 사용되는 마크업 언어로, 유연하고 확장 가능하며 종종 서로 다른 시스템 간의 데이터 교환에 사용됩니다. XML 데이터를 처리할 때 필요한 정보를 추출하기 위해 필터링하고 필터링해야 하는 경우가 많습니다. 이 기사에서는 Python을 사용하여 XML 데이터를 필터링하고 필터링하는 방법을 소개합니다. 필수 모듈을 가져옵니다. 시작하기 전에

C#의 취업 전망은 어떻습니까? C#의 취업 전망은 어떻습니까? Oct 19, 2023 am 11:02 AM

초보자이든 숙련된 전문가이든 C#을 마스터하면 경력을 쌓는 길이 열릴 것입니다.

여러 .NET 오픈 소스 AI 및 LLM 관련 프로젝트 프레임워크 공유 여러 .NET 오픈 소스 AI 및 LLM 관련 프로젝트 프레임워크 공유 May 06, 2024 pm 04:43 PM

오늘날 인공지능(AI) 기술 개발은 본격화되고 있으며, 다양한 분야에서 큰 잠재력과 영향력을 보여주고 있습니다. 오늘 Dayao는 여러분에게 몇 가지 참고 자료를 제공하고자 4개의 .NET 오픈 소스 AI 모델 LLM 관련 프로젝트 프레임워크를 공유할 것입니다. https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel은 OpenAI, Azure와 같은 대규모 언어 모델(LLM)을 통합하도록 설계된 오픈 소스 소프트웨어 개발 키트(SDK)입니다.

전체 가이드: PHP 확장 SimpleXML을 사용하여 XML 데이터를 읽고 처리하는 방법 전체 가이드: PHP 확장 SimpleXML을 사용하여 XML 데이터를 읽고 처리하는 방법 Jul 28, 2023 pm 02:46 PM

전체 가이드: PHP 확장 SimpleXML을 사용하여 XML 데이터를 읽고 처리하는 방법 소개: 최신 웹 개발에서 XML 데이터를 처리하고 조작하는 것은 매우 일반적인 작업입니다. 강력한 서버측 스크립팅 언어인 PHP는 XML 데이터를 처리하고 조작하기 위한 다양한 확장 기능과 기능을 제공합니다. 그중 SimpleXML 확장은 XML 데이터를 읽고 처리하는 프로세스를 단순화하는 특히 유용한 도구입니다. 이 기사에서는 PHP 확장 기능을 사용하는 방법에 대한 완전한 가이드를 제공합니다.

개발자를 위한 .NET 성능 최적화 기술 개발자를 위한 .NET 성능 최적화 기술 Sep 12, 2023 am 10:43 AM

.NET 개발자라면 고품질 소프트웨어 제공에 있어 기능과 성능 최적화의 중요성을 인식해야 합니다. 제공된 리소스를 전문적으로 활용하고 웹 사이트 로드 시간을 줄임으로써 사용자에게 즐거운 경험을 선사할 뿐만 아니라 인프라 비용도 절감할 수 있습니다.

Java 프레임워크와 .NET 프레임워크 간의 성능 차이 Java 프레임워크와 .NET 프레임워크 간의 성능 차이 Jun 03, 2024 am 09:19 AM

높은 동시성 요청 처리 측면에서 .NETASP.NETCoreWebAPI는 JavaSpringMVC보다 성능이 뛰어납니다. 그 이유는 다음과 같습니다. 시작 시간을 줄여주는 AOT 조기 컴파일, 개발자가 개체 메모리 할당 및 해제를 담당하는 경우.

C# .NET 인터뷰 질문 및 답변 : 전문 지식 레벨 업 C# .NET 인터뷰 질문 및 답변 : 전문 지식 레벨 업 Apr 07, 2025 am 12:01 AM

C#.NET 인터뷰 질문 및 답변에는 기본 지식, 핵심 개념 및 고급 사용이 포함됩니다. 1) 기본 지식 : C#은 Microsoft가 개발 한 객체 지향 언어이며 주로 .NET 프레임 워크에 사용됩니다. 2) 핵심 개념 : 위임 및 이벤트는 동적 바인딩 방법을 허용하고 LINQ는 강력한 쿼리 기능을 제공합니다. 3) 고급 사용 : 비동기 프로그래밍은 응답 성을 향상시키고 표현 트리는 동적 코드 구성에 사용됩니다.

Advanced C# .NET 튜토리얼 : ACE 귀하의 다음 선임 개발자 인터뷰 Advanced C# .NET 튜토리얼 : ACE 귀하의 다음 선임 개발자 인터뷰 Apr 08, 2025 am 12:06 AM

C# 수석 개발자와의 인터뷰에는 비동기 프로그래밍, LINQ 및 .NET 프레임 워크의 내부 작업 원리와 같은 핵심 지식을 마스터하는 것이 필요합니다. 1. 비동기 프로그래밍은 비동기를 통해 작업을 단순화하고 응용 프로그램 응답 성을 향상시키기 위해 기다리고 있습니다. 2.linq는 SQL 스타일로 데이터를 운영하고 성능에주의를 기울입니다. 3. Net Framework의 CLR은 메모리를 관리하며 가비지 컬렉션은주의해서 사용해야합니다.

See all articles