Easily process XML data in .NET Framework (5-1)
??Design the XmlReadWriter class
??As mentioned earlier, XML reader and Writer work independently: reader only reads, writer only writes. Suppose your application needs to handle a long XML document, and the document has unstable data. Reader provides a good way to read the content of the document. Writer, on the other hand, is a very useful tool for creating XML document fragments, but if you want it to be both readable and writable, then you have to use XMLDOM. If the actual XML document is very large, another title will appear. What title is it? Should we load all this XML document into memory and then read and write it later? Let's first look at how to build a hybrid stream analyzer for parsing large XML DOMs.
??Like a normal read-only operation, use an ordinary XML reader to access nodes sequentially. The difference is that you can use XML writer to change attribute values and node contents while reading. You use the reader to read each node in the source file, and the background writer creates a copy of the node. In this copy, you can add some new nodes, ignore or edit other nodes, and edit attribute values. When you're done making changes, you replace the old document with the new one.
??A simple and effective method is to copy the node object from the read-only stream to the write stream. This method can use two methods in the XmlTextWriter class: WriteAttributes method and WriteNode method. The WriteAttributes method reads all valid attributes of the node selected in the current reader, and then copies the attributes as a separate string to the current output stream. Similarly, the WriteNode method uses a similar method to handle other types of nodes except attribute nodes. The code snippet shown in Figure 10 demonstrates how to use the above two methods to create a copy of the source XML document and selectively modify certain nodes. The XML tree is accessed starting from the root of the tree, but only nodes of other types than attribute node types are output. You can integrate Reader and Writer in a new class and design a new interface so that it can read and write streams and access properties and nodes.
Figure 10 Using the WriteNode Method
XmlTextReader reader = new XmlTextReader(inputFile);
XmlTextWriter writer = new XmlTextWriter(outputFile);
//Configure reader and writer
writer.Formatting = Formatting.Indented;
reader.MoveToContent();
// Write root node
writer.WriteStartElement(reader.LocalName);
// Read and output every other node
int i=0;
while (reader.Read())
{
if (i % 2)
writer.WriteNode(reader, false);
i ;
}
// Close the root
writer.WriteEndElement ();
// Close reader and writer
writer.Close();
reader.Close();
?? My XmlTextReadWriter class is not persisted from the XmlReader or XmlWriter class. Instead, there are two other classes, one is a control class based on a read-only stream (stream), and the other is a control class based on a write-only stream. The method of the XmlTextReadWriter class uses the Reader object to read data and writes it to the Writer object. In order to adapt to different needs, the internal Reader and Writer objects are exposed through the read-only Reader and Writer properties. Figure 11 lists some methods of this class:
Figure 11 XmlTextReadWriter Class Methods
Method
Description
AddAttributeChange
Caches all the information needed to perform a change on a node attribute. processed during a successive call to WriteAttributes.
Read
Simple wrapper around the internal reader's Read method.
WriteAttributes
Specialized version of the writer's WriteAttributes method, writes out all the attributes for the given node, taking into account all the changes cached through the AddAttributeChange method.
WriteEndDocument
Terminates the current document in the writer and closes both the reader and the writer.
WriteStartDocument
Prepares the internal writer to output the document and add a default comment text and the standard XML prolog.
??This new class has a Read method, which is a simple encapsulation of Reader's read method. In addition, it provides WriterStartDocument and WriteEndDocument methods. They initialize/release (finalize) the internal Reader and writer objects respectively, and also handle all I/O operations. While reading the nodes in a loop, we can directly correct the nodes. For performance reasons, attributes must be modified first using the AddAttributeChange method. All modifications to a node's attributes will be stored in a temporary table. Finally, the modifications are submitted by calling the WriteAttribute method and the temporary table is cleared.
The above is the content of easily processing XML data (5-1) in .NET Framework. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Python implements XML data filtering and filtering. XML (eXtensibleMarkupLanguage) is a markup language used to store and transmit data. It is flexible and scalable and is often used for data exchange between different systems. When processing XML data, we often need to filter and filter it to extract the information we need. This article will introduce how to use Python to filter and filter XML data. Import the required modules Before starting, we

The development of artificial intelligence (AI) technologies is in full swing today, and they have shown great potential and influence in various fields. Today Dayao will share with you 4 .NET open source AI model LLM related project frameworks, hoping to provide you with some reference. https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel is an open source software development kit (SDK) designed to integrate large language models (LLM) such as OpenAI, Azure

Whether you are a beginner or an experienced professional, mastering C# will pave the way for your career.

In terms of high-concurrency request processing, .NETASP.NETCoreWebAPI performs better than JavaSpringMVC. The reasons include: AOT early compilation, which reduces startup time; more refined memory management, where developers are responsible for allocating and releasing object memory.

Complete Guide: How to Read and Process XML Data Using PHP Extension SimpleXML Introduction: In modern web development, processing and manipulating XML data is a very common task. As a powerful server-side scripting language, PHP provides a variety of extensions and functions for processing and manipulating XML data. Among them, the SimpleXML extension is a particularly useful tool that simplifies the process of reading and processing XML data. This article will provide you with a complete guide on how to use PHP extensions

If you are a .NET developer, you must be aware of the importance of optimizing functionality and performance in delivering high-quality software. By making expert use of the provided resources and reducing website load times, you not only create a pleasant experience for your users but also reduce infrastructure costs.

XML (ExtensibleMarkupLanguage) is a widely used data format designed for cross-platform data transmission and storage. In web applications, processing XML data is a very common task. This article will introduce how to use PHP's built-in XML functions to process XML data. Reading XML data PHP provides a set of functions for reading XML data. The most commonly used one is the simplexml_load_file function. This function converts XML

Use PHP and XML to implement multi-language support for websites. With the rapid development of the Internet, more and more websites need to provide multi-language support for global users. When designing a multilingual website, we need to consider the translation of the user interface, user feedback, logging, and other static or dynamic content. This article will introduce how to use PHP and XML to achieve multi-language support for the website. Create a language file First, we need to create a language file to store translated text in various languages. Each language translation file is a
