Figure 7 States for XML Writer
State
Description
Attribute
The writer enters this state when an attribute is being written
Closed
The Close method has been called and the writer is no longer available for writing operations
Content
The writer enters this state when the content of a node is being written
Element
The writer enters this state when an element start tag is being written
Prolog
The writer is writing the prolog of a well-formed XML 1.0 document
Start
The writer is in an initial state, awaiting for a write call to be issued
??Writer stores the output text in an internal buffer. Normally, the buffer will be flushed or cleared, and the XML text should be written before the Writer is closed. At any time, you can clear the buffer by calling the Flush method, write the current content to the stream (exposed through the BaseStream property), and then release part of the occupied memory. The Writer remains open state. , can be continuously controlled. Note that although part of the document content has been written, other programs cannot process the document before the Writer is closed.
??You can use two methods to write attribute nodes. The first method is to use the WriteStartAtribute method to create a new attribute node and update the status of the Writer. Then use the WriteString method to set the property value. After writing, use the WriteEndElement method to end the node. In addition, you can also use the WriteAttributeString method to create a new attribute node. When the status of writerr is Element, WriterAttributeString starts to work and it creates a separate attribute. Similarly, the WriteStartElement method writes the node's opening tag (<), and then you can freely set the node's properties and text content. The closing tags of element nodes all have "/ >". If you want to write a closing tag, you can use the WriteFullEndElement method to write it.
??You should avoid text passed to write methods that contains sensitive markup characters, such as the less than sign (<). Strings written to the stream using the WriteRaw method will not be parsed. We can use it to write special strings to xml documents. In the following two lines of code, the first line outputs "<" and the second line outputs "<":
writer.WriteString('<');
writer.WriteRaw('<');
??Reading and writing streams
??Interestingly, the reader (browser) and writer classes provide methods for reading and writing data streams based on Base64 and BinHex encoding. The functions of the WriteBase64 and WriteBinHex methods are slightly different from those of other write methods. They are both stream-based, and these two methods function like a byte array rather than a string. The following code first converts a string into a byte array, and then writes them into a Base64 encoded stream. The GetBytes static method of the Encoding class completes the conversion task:
writer.WriteBase64(
Encoding.Unicode.GetBytes(buf),
0, buf.Length*2);
The above is in the .NET Framework Easily process XML data (4-2). For more related content, please pay attention to the PHP Chinese website (www.php.cn)!