search
HomeBackend DevelopmentC#.Net TutorialEasily process XML data in .NET Framework (1-2)

Easily process XML data in .NET Framework (1-2)

Dec 20, 2016 pm 02:02 PM
.netframeworkxml data

?XmlReader class

??XML browser supports a programming interface, which is used to connect to XML documents and "pull out" the data you want. If you understand the browser more deeply, you will find that the browser works similarly to how our desktop applications retrieve data from the database. The database service returns a cursor object that contains all query result sets and returns a reference to the starting address of the target data set. The client of the XML browser receives a reference to the browser instance. This example extracts the underlying data stream and displays the retrieved data as an XML tree. The browser class provides a read-only, forward cursor. You can use the methods provided by the browser class to rotate the cursor and traverse each piece of data in the result set.

??The XML document viewed from the browser is not a tagged text file, but a serialized node aggregation. It is a special cursor mode in the .NET Framework; you cannot find any other similar API function in the .NET Framework.

??There are several differences between browsers and XMLDOM parsers. The XML browser is enter-only. It has no concepts of parent, child, ancestor, and sibling nodes, and it is read-only. In the .NET Framework, reading and writing XML documents is divided into two completely different functions, which are completed by the XmlReader and XmlWriter classes respectively. To edit XML documents, you can use an XMLDOM parser, or you can design a class yourself to achieve these two functions. Let's start analyzing the program functions of the browser.

??XmlReader is an abstract class, you can extend and extend its functionality. User programs are generally based on the following three categories: XmlTextReader, XmlValidatingReader or XmlNodeReader class. All these classes have the properties shown in Figure 1 and the methods shown in Figure 2. It should be noted that the values ​​​​of some properties are actually attached to an actual browser class, and different classes may be different from the base class. Therefore, the explanation of each attribute in Figure 1 is based on the base class. For example, the CanResolveEntity property only returns true in the XmlValidatingReader class; but it can be set to false in other browser classes. Likewise, the actual return values ​​of some of the methods in Figure 2 may differ for different classes. For example, if the node type is not an element node, the return value type of all methods containing Atrributes is void.

??The XmlTextReader class uses forward-only and read-only methods to quickly access XML data streams. The browser first verifies whether the XML document is well-formed, and if not, throws an exception. XmlTextReader checks that the DTD is well-formed, but does not apply the DTD to validate the document. XmlTextReader loads the XML document by its file name, its URL, or from a file stream, and then quickly processes the XML document data. If you need to validate the document's data, you can use the XmlValidatingReader class.

??You can create instances of the XmlTextReader class in a variety of ways, loading files from the hard disk, loading from URL addresses, loading from streams, and reading XML document data from text:

? ?XmlTextReader reader = new XmlTextReader(file);

??Note that all public structural functions of the XmlTextReader class require you to specify the data source. The data source can be a stream, a file or other. The default structure function of XmlTextReader is protected, so it cannot be applied directly. Like all browser classes in the .NET Framework (such as the SqlDataReader class), once the browser object is connected and opened, you can use the Read method to access the data. At the beginning, we can only use the Read method to move the pointer to the first element; then we can use the Read method or other methods (such as Skip, MoveToContent and ReadInnerXml) to move the pointer to the next node element. To process the content of the entire XML document, you can use a loop to traverse the document content based on the return value of the Read method. Since the Read method returns a Boolean value, when the end node of the document is read, the Read method returns false, otherwise it returns true.



??Figure 3 Outputting an XML Document Node Layout

??string GetXmlFileNodeLayout(string file)
??{
??// Create an XmlTextReader class to point it to the target XML document
??XmlTextReader reader = new XmlTextReader(file);

??// Loop out the text of the node and put it into the StringWriter object instance
??StringWriter writer = new StringWriter();
??string tabPrefix = '';

??while ( reader.Read())
??{
??// Write the opening tag, if the node type is an element
??if (reader.NodeType == XmlNodeType.Element)
??{
??//According to the element At the depth of the node, add reader.Depth tab characters, and then write the element name into .
??tabPrefix = new string('t', reader.Depth);
??writer.WriteLine('{0}', tabPrefix, reader.Name);
??}
? ?else
??{
??//Write the end tag, if the node type is an element
??if (reader.NodeType == XmlNodeType.EndElement)
??{
??tabPrefix = new string('t', reader.Depth);
??writer.WriteLine('{0}', tabPrefix, reader.Name);
??}
??}
??}

??//Output to the screen
??string buf = writer.ToString( );
??writer.Close();

??// closed flow
??reader.Close();

??return buf; Function for outputting the node elements of a given XML document. This function first opens an XML document, and then uses a loop to process all the contents of the XML document. Each time the Read method is called, the browser's pointer moves down one node. In most cases, the Read method can handle element nodes, but sometimes, when you move from one node to the next, you may be moving between two different types of nodes. But the Read method cannot move between attribute nodes. The browser's MoveToContent method allows the pointer to jump from the head node position to the first content node position. You can also use the Skip method to move the pointer in ProcessingInstruction, DocumentType, Comment, Whitespace and SignificantWhitespace type nodes.

The above is the content of easily processing XML data (1-2) in .NET Framework. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!



Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
C# and the .NET Runtime: How They Work TogetherC# and the .NET Runtime: How They Work TogetherApr 19, 2025 am 12:04 AM

C# and .NET runtime work closely together to empower developers to efficient, powerful and cross-platform development capabilities. 1) C# is a type-safe and object-oriented programming language designed to integrate seamlessly with the .NET framework. 2) The .NET runtime manages the execution of C# code, provides garbage collection, type safety and other services, and ensures efficient and cross-platform operation.

C# .NET Development: A Beginner's Guide to Getting StartedC# .NET Development: A Beginner's Guide to Getting StartedApr 18, 2025 am 12:17 AM

To start C#.NET development, you need to: 1. Understand the basic knowledge of C# and the core concepts of the .NET framework; 2. Master the basic concepts of variables, data types, control structures, functions and classes; 3. Learn advanced features of C#, such as LINQ and asynchronous programming; 4. Be familiar with debugging techniques and performance optimization methods for common errors. With these steps, you can gradually penetrate the world of C#.NET and write efficient applications.

C# and .NET: Understanding the Relationship Between the TwoC# and .NET: Understanding the Relationship Between the TwoApr 17, 2025 am 12:07 AM

The relationship between C# and .NET is inseparable, but they are not the same thing. C# is a programming language, while .NET is a development platform. C# is used to write code, compile into .NET's intermediate language (IL), and executed by the .NET runtime (CLR).

The Continued Relevance of C# .NET: A Look at Current UsageThe Continued Relevance of C# .NET: A Look at Current UsageApr 16, 2025 am 12:07 AM

C#.NET is still important because it provides powerful tools and libraries that support multiple application development. 1) C# combines .NET framework to make development efficient and convenient. 2) C#'s type safety and garbage collection mechanism enhance its advantages. 3) .NET provides a cross-platform running environment and rich APIs, improving development flexibility.

From Web to Desktop: The Versatility of C# .NETFrom Web to Desktop: The Versatility of C# .NETApr 15, 2025 am 12:07 AM

C#.NETisversatileforbothwebanddesktopdevelopment.1)Forweb,useASP.NETfordynamicapplications.2)Fordesktop,employWindowsFormsorWPFforrichinterfaces.3)UseXamarinforcross-platformdevelopment,enablingcodesharingacrossWindows,macOS,Linux,andmobiledevices.

C# .NET and the Future: Adapting to New TechnologiesC# .NET and the Future: Adapting to New TechnologiesApr 14, 2025 am 12:06 AM

C# and .NET adapt to the needs of emerging technologies through continuous updates and optimizations. 1) C# 9.0 and .NET5 introduce record type and performance optimization. 2) .NETCore enhances cloud native and containerized support. 3) ASP.NETCore integrates with modern web technologies. 4) ML.NET supports machine learning and artificial intelligence. 5) Asynchronous programming and best practices improve performance.

Is C# .NET Right for You? Evaluating its ApplicabilityIs C# .NET Right for You? Evaluating its ApplicabilityApr 13, 2025 am 12:03 AM

C#.NETissuitableforenterprise-levelapplicationswithintheMicrosoftecosystemduetoitsstrongtyping,richlibraries,androbustperformance.However,itmaynotbeidealforcross-platformdevelopmentorwhenrawspeediscritical,wherelanguageslikeRustorGomightbepreferable.

C# Code within .NET: Exploring the Programming ProcessC# Code within .NET: Exploring the Programming ProcessApr 12, 2025 am 12:02 AM

The programming process of C# in .NET includes the following steps: 1) writing C# code, 2) compiling into an intermediate language (IL), and 3) executing by the .NET runtime (CLR). The advantages of C# in .NET are its modern syntax, powerful type system and tight integration with the .NET framework, suitable for various development scenarios from desktop applications to web services.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool