XML Functions
For XML, I think everyone knows it well. I don't need to bother to describe what it is. I think XML will surely shine in the future of Web development, XML is a scalable markup language that allows enterprises to develop their own data formats. For Internet data transmission, I think this is the most attractive place for our programmers!
Our topic today is not about the advantages of XML, but about how to use XML in C. Next, let's take a look at some basic theoretical knowledge about accessing XML using a program.
Two access models:
There are two models for accessing and then operating XML files in a program: DOM (Document Object Model) and stream model. The advantage of DOM is that it allows editing and updating XML documents, you can randomly access the data in the document and use XPath for query. However, the disadvantage of DOM is that it needs to load the entire document to the memory at a time. For large documents, this may cause resource problems. The stream model solves this problem well because it uses the stream concept to access XML files, that is, it only has the current node in the memory at any time, but it also has its shortcomings. It is read-only and only forward, and cannot perform backward navigation in the document. Although each has its own merits, we can also use the two in the program to complement each other.
I. DOM Document Object Model Operations
Copy codeThe Code is as follows: using System. Xml;
XmlDocument xml = new XmlDocument (); // Initialize an xml instance
Xml. Load (path); // import the specified xml file
Xml. Load (HttpContext. Current. Server. MapPath ("~ /File/bookstore. xml "); XmlNode root = xml. SelectSingleNode ("/root "); // specify a node
XmlNodeList childlist = root. ChildNodes; // retrieve all direct subnodes under a node
XmlNodeList nodelist = xml. selectNodes ("/Root/News"); // obtain the set of nodes with the same name as the string id = node. attributes ["id"]. value; // obtain the specified attribute Value of a specified Node
String content = node. InnerText; // get the text in the specified node
Root. HasChildNodes; // determines whether a subnode exists under the node.
1. attributes of the XmlDocument class
The attributes and descriptions of the XmlDocument class are shown in the following table.
Attribute |
Description |
Attributes |
Attribute Set of the current node |
BaseURI |
Base URI of the current node |
ChildNodes |
All subnodes of a node |
DocumentElement |
Document Root |
DocumentType |
Nodes declared by DOCTYPE |
FirstChild |
The first subnode of the node. |
HasChildNodes |
Is there any subnode? |
Implementation |
Get the XmlImplementation object of the current document |
InnerText |
All text content contained in the node |
InnerXml |
All XML content contained by the node |
IsReadOnly |
Whether the current node is read-only |
Item |
Obtains the specified child element. |
LastChild |
Last subnode |
LocalName |
Obtain the local name of a node |
Name |
Get the node's qualified name |
NamespaceURI |
Get the namespace URI of the node |
NameTable |
Obtain the XmlNameTable associated with this implementation |
NextSibling |
Obtain the node that follows the node |
NodeType |
Obtains the type of the current node. |
OuterXml |
Obtain the flag indicating this node and all its subnodes |
OwnerDocument |
Obtains the XmlDocument to which the current node belongs. |
ParentNode |
Obtain the parent level of a node (for a node with a parent level) |
Prefix |
Get or set the namespace prefix of the node |
PreserveWhitespace |
Gets or sets a value that indicates whether to retain white space in the element content. |
Previussibling |
Obtain the node that follows the node |
SchemaInfo |
Returns the post-architecture verification information set (PSVI) of the node) |
Schemas |
Gets or sets the XmlSchemaSet object associated with this XmlDocument |
Value |
Obtains or sets the value of a node. |
XmlResolver |
Set XmlResolver for parsing external resources |
2. methods of the XmlDocument class
The methods and descriptions of the XmlDocument class are shown in the following table.
Method |
Description |
AppendChild |
Add the specified node to the end of the node's subnode list |
CreateAttribute |
Create an XmlAttribute with the specified name |
CreateCDataSection |
Create an XmlCDataSection containing the specified data |
CreateComment |
Create an XmlComment that contains the specified data |
CreateDocumentFragment |
Create XmlDocumentFragment |
CreateDocumentType |
Returns the new XmlDocumentType object. |
CreateElement |
Create XmlElement |
CreateEntityReference |
Create an XmlEntityReference with the specified name |
CreateNavigator |
Create a new XPathNavigator object used to navigate this document |
CreateNode |
Create XmlNode |
CreateProcessingInstruction |
Create an XmlProcessingInstruction with the specified name and Data |
CreateSignificantWhitespace |
Create an XmlSignificantWhitespace Node |
CreateTextNode |
Create XmlText with specified text |
CreateWhitespace |
Create an XmlWhitespace Node |
CreateXmlDeclaration |
Create an XmlDeclaration node with the specified value |
GetElementById |
Obtains the XmlElement with the specified ID. |
GetElementsByTagName |
Returns an XmlNodeList that contains a list of all elements that match the specified name. |
GetNamespaceOfPrefix |
Find the xmlns declaration closest to the given prefix within the current node range, and return the namespace URI in the Declaration |
GetPrefixOfNamespace |
Find the xmlns declaration closest to the specified namespace URI within the current node range, and return the prefix defined in the Declaration |
GetType |
Obtains the Type of the current instance. |
ImportNode |
Import a node from another document to the current document |
InsertAfter |
Insert the specified node to the referenced node. |
InsertBefore |
Insert the specified node to the specified referenced node. |
Load |
Load specified XML data |
LoadXml |
Load the XML document from the specified string |
Normalize |
Convert all XmlText nodes to "normal" Form |
PrependChild |
Add a specified node to the beginning of the node's subnode list |
ReadNode |
Create an XmlNode object based on the information in XmlReader. The reader must be located on a node or attribute. |
RemoveAll |
Removes all subnodes and/or attributes of the current node. |
RemoveChild |
Removes a specified subnode. |
ReplaceChild |
Replace Old nodes with new nodes |
Save |
Save the XML document to the specified location |
SelectNodes |
Select the node list that matches the XPath expression |
SelectSingleNode |
Select the first XmlNode that matches the XPath expression |
Supports |
Test whether DOM implements specific functions |
Validate |
Verify whether the XmlDocument is an XML Schema Definition Language (XSD) architecture contained in the Schemas attribute. |
WriteContentTo |
Saves all child levels of the XmlDocument node to the specified XmlWriter. |
WriteTo |
Saves the XmlDocument node to the specified XmlWriter |
The following describes common methods.
(1) Load Method
This method can be used to import XML data from an XML file specified by a string, a stream object, a TextReader object, and an XmlReader object.
(2) LoadXml Method
This method imports XML data from a specific XML file. By default, the LoadXml method neither retains blank nor meaningful blank. This method does not perform DTD or architecture verification.
(3) Save Method
This method saves XML data to an XML file or a stream object, a TextReader object, and an XmlReader object to import XML data.
3. Events of the XmlDocument class
The events and descriptions of the XmlDocument class are shown in the following table.
Table events and descriptions of the XmlDocument class
Event |
Description |
NodeChanged |
This occurs when the Value of the node that belongs to this document has been changed. |
NodeChanging |
This occurs when the Value of the node that belongs to this document is changed. |
NodeInserted |
This occurs when the node that belongs to this document has been inserted into another node. |
NodeInserting |
This occurs when the node that belongs to this document is inserted into another node. |
NodeRemoved |
This occurs when the node that belongs to this document has been removed from its parent. |
NodeRemoving |
This occurs when the node that belongs to this document is removed from the document. |
Http://kb.cnblogs.com/page/42226/