Home Backend Development C#.Net Tutorial Easily process XML data in .NET Framework (1-2)

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

Dec 20, 2016 pm 02:02 PM
.net framework xml 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}<{1}>', 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 of this Website
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

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

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Microsoft NET Framework Installation Issues Error Code 0x800c0006 Fix Microsoft NET Framework Installation Issues Error Code 0x800c0006 Fix May 05, 2023 pm 04:01 PM

.NET Framework 4 is required by developers and end users to run the latest versions of applications on Windows. However, while downloading and installing .NET Framework 4, many users complained that the installer stopped midway, displaying the following error message - " .NET Framework 4 has not been installed because Download failed with error code 0x800c0006 ". If you are also experiencing it while installing .NETFramework4 on your device then you are at the right place

How to identify Windows upgrade issues using SetupDiag on Windows 11/10 How to identify Windows upgrade issues using SetupDiag on Windows 11/10 Apr 17, 2023 am 10:07 AM

Whenever your Windows 11 or Windows 10 PC has an upgrade or update issue, you will usually see an error code indicating the actual reason behind the failure. However, sometimes confusion can arise when an upgrade or update fails without an error code being displayed. With handy error codes, you know exactly where the problem is so you can try to fix it. But since no error code appears, it becomes challenging to identify the issue and resolve it. This will take up a lot of your time to simply find out the reason behind the error. In this case, you can try using a dedicated tool called SetupDiag provided by Microsoft that helps you easily identify the real reason behind the error.

Python implements XML data filtering and filtering Python implements XML data filtering and filtering Aug 09, 2023 am 10:13 AM

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

SCNotification has stopped working [5 steps to fix it] SCNotification has stopped working [5 steps to fix it] May 17, 2023 pm 09:35 PM

As a Windows user, you are likely to encounter SCNotification has stopped working error every time you start your computer. SCNotification.exe is a Microsoft system notification file that crashes every time you start your PC due to permission errors and network failures. This error is also known by its problematic event name. So you might not see this as SCNotification having stopped working, but as bug clr20r3. In this article, we will explore all the steps you need to take to fix SCNotification has stopped working so that it doesn’t bother you again. What is SCNotification.e

Share several .NET open source AI and LLM related project frameworks Share several .NET open source AI and LLM related project frameworks May 06, 2024 pm 04:43 PM

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

Microsoft .NET Framework 4.5.2, 4.6, and 4.6.1 will end support in April 2022 Microsoft .NET Framework 4.5.2, 4.6, and 4.6.1 will end support in April 2022 Apr 17, 2023 pm 02:25 PM

Microsoft Windows users who have installed Microsoft.NET version 4.5.2, 4.6, or 4.6.1 must install a newer version of the Microsoft Framework if they want Microsoft to support the framework through future product updates. According to Microsoft, all three frameworks will cease support on April 26, 2022. After the support date ends, the product will not receive "security fixes or technical support." Most home devices are kept up to date through Windows updates. These devices already have newer versions of frameworks installed, such as .NET Framework 4.8. Devices that are not updating automatically may

What are the employment prospects of C#? What are the employment prospects of C#? Oct 19, 2023 am 11:02 AM

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

KB5012643 for Windows 11 breaks .NET Framework 3.5 apps KB5012643 for Windows 11 breaks .NET Framework 3.5 apps May 09, 2023 pm 01:07 PM

It's been a week since we talked about the new safe mode bug affecting users who installed KB5012643 for Windows 11. This pesky issue didn't appear on the list of known issues Microsoft posted on launch day, thus catching everyone by surprise. Well, just when you thought things couldn't get any worse, Microsoft drops another bomb for users who have installed this cumulative update. Windows 11 Build 22000.652 causes more problems So the tech company is warning Windows 11 users that they may experience problems launching and using some .NET Framework 3.5 applications. Sound familiar? But please don't be surprised

See all articles