The System.Xml Namespace
来源:互联网 发布:thinkphp微信开发源码 编辑:程序博客网 时间:2024/04/29 22:21
The System.Xml Namespace
You'll use the System.Xml namespace for processing XML data. This namespace
supports an ever-expanding host of XML standards, such as the following:
XML 1.0
Namespaces
Schemas
XSL/T
SOAP 1.1
The System.Xml namespace contains classes that represent the various XML
elements, similar to the objects provided by the MSXML library for Visual
Basic 6.0 developers. For example, you'll find an XmlDocument class, an
XmlEntity class, and an XmlNode class. You can also use XmlValidatingReader
in order to read XML and validate it against a Document Type Definition
(DTD), XML Data Reduced (XDR) schema, or an XML Schema Definition (XSD).
The System.Xml namespace includes reader and writer classes that provide
fast, forward-only reading and writing of XML streams. Back in the
System.Data discussion, you learned about the DataReader class, which is
used for fast forward-only data access. XmlTextReader provides the same
basic functionality against an XML stream.
When you use a reader object to read XML, you can use properties of the
reader to determine each node type and act accordingly. A writer class has
methods such as WriteCData, WriteDocType, and WriteNode in order to create
an XML document, element by element.
A System.Xml Example
The example in Listing 4.5 combines several of the namespaces covered in
this chapter. First, it uses System.Data classes to read data from SQL
Server. Next, it uses System.IO classes to output that data into an XML
file. Finally, it reopens the original XML file and uses System.Xml to read
the contents of the file and copy the data into a text box. Here's the code:
NOTE
More node types are possible when reading in an XML document than are shown
in the Select Case statement. However, for brevity, the number of types
examined is small.
Listing 4.5 Use an XmlTextReader Class to Parse an XML Document
Imports System.IO
Imports System.XML
Imports System.Text
Imports System.Data.OleDb
Private Sub XMLWrite()
Dim strConn As String
Dim strSQL As String
Dim strName As String
Dim strXML As String
Dim sw As StreamWriter
Dim sr As XmlTextReader
Dim sb As New StringBuilder(256)
Dim da As OleDbDataAdapter
Dim ds As DataSet
strConn = "Provider=sqloledb;" & _
"Data Source=(local);" & _
"Initial Catalog=Northwind;" & _
"User ID=sa"
strSQL = "SELECT ProductID, ProductName FROM Products"
da = New OleDbDataAdapter(strSQL, strConn)
ds = New DataSet()
da.Fill(ds)
strName = "c:/test.xml"
sw = File.CreateText(strName)
sw.WriteLine(ds.GetXml)
sw.Close()
sr = New XmlTextReader(strName)
sr.WhitespaceHandling = WhitespaceHandling.None
' Parse the file and display each of the nodes.
While sr.Read()
Select Case sr.NodeType
Case XmlNodeType.Element
sb.AppendFormat("<{0}>", sr.Name)
Case XmlNodeType.Text
sb.Append(sr.Value)
Case XmlNodeType.XmlDeclaration
sb.Append("<?xml version='1.0'?>")
Case XmlNodeType.Document
Case XmlNodeType.DocumentType
sb.AppendFormat("<!DOCTYPE {0}[{1}]", _
sr.Name, sr.Value)
Case XmlNodeType.EndElement
sb.AppendFormat("</{0} >", sr.Name)
End Select
End While
txtXML.Text = sb.ToString()
End Sub
You'll use the System.Xml namespace for processing XML data. This namespace
supports an ever-expanding host of XML standards, such as the following:
XML 1.0
Namespaces
Schemas
XSL/T
SOAP 1.1
The System.Xml namespace contains classes that represent the various XML
elements, similar to the objects provided by the MSXML library for Visual
Basic 6.0 developers. For example, you'll find an XmlDocument class, an
XmlEntity class, and an XmlNode class. You can also use XmlValidatingReader
in order to read XML and validate it against a Document Type Definition
(DTD), XML Data Reduced (XDR) schema, or an XML Schema Definition (XSD).
The System.Xml namespace includes reader and writer classes that provide
fast, forward-only reading and writing of XML streams. Back in the
System.Data discussion, you learned about the DataReader class, which is
used for fast forward-only data access. XmlTextReader provides the same
basic functionality against an XML stream.
When you use a reader object to read XML, you can use properties of the
reader to determine each node type and act accordingly. A writer class has
methods such as WriteCData, WriteDocType, and WriteNode in order to create
an XML document, element by element.
A System.Xml Example
The example in Listing 4.5 combines several of the namespaces covered in
this chapter. First, it uses System.Data classes to read data from SQL
Server. Next, it uses System.IO classes to output that data into an XML
file. Finally, it reopens the original XML file and uses System.Xml to read
the contents of the file and copy the data into a text box. Here's the code:
NOTE
More node types are possible when reading in an XML document than are shown
in the Select Case statement. However, for brevity, the number of types
examined is small.
Listing 4.5 Use an XmlTextReader Class to Parse an XML Document
Imports System.IO
Imports System.XML
Imports System.Text
Imports System.Data.OleDb
Private Sub XMLWrite()
Dim strConn As String
Dim strSQL As String
Dim strName As String
Dim strXML As String
Dim sw As StreamWriter
Dim sr As XmlTextReader
Dim sb As New StringBuilder(256)
Dim da As OleDbDataAdapter
Dim ds As DataSet
strConn = "Provider=sqloledb;" & _
"Data Source=(local);" & _
"Initial Catalog=Northwind;" & _
"User ID=sa"
strSQL = "SELECT ProductID, ProductName FROM Products"
da = New OleDbDataAdapter(strSQL, strConn)
ds = New DataSet()
da.Fill(ds)
strName = "c:/test.xml"
sw = File.CreateText(strName)
sw.WriteLine(ds.GetXml)
sw.Close()
sr = New XmlTextReader(strName)
sr.WhitespaceHandling = WhitespaceHandling.None
' Parse the file and display each of the nodes.
While sr.Read()
Select Case sr.NodeType
Case XmlNodeType.Element
sb.AppendFormat("<{0}>", sr.Name)
Case XmlNodeType.Text
sb.Append(sr.Value)
Case XmlNodeType.XmlDeclaration
sb.Append("<?xml version='1.0'?>")
Case XmlNodeType.Document
Case XmlNodeType.DocumentType
sb.AppendFormat("<!DOCTYPE {0}[{1}]", _
sr.Name, sr.Value)
Case XmlNodeType.EndElement
sb.AppendFormat("</{0} >", sr.Name)
End Select
End While
txtXML.Text = sb.ToString()
End Sub
- The System.Xml Namespace
- The System Namespace
- The System.Data Namespace
- The System.IO Namespace
- The System.Text Namespace
- The System.Collections Namespace
- The System.Web.Services Namespace
- System.Xml namespace 入门级学习
- The type or namespace name 'Windows' does not exist in the class or namespace 'System'
- CS0234: The type or namespace name 'Linq' does not exist in the namespace 'System.Data'
- XML namespace
- XML NameSpace
- XML namespace
- Unity3d——报错 The type or namespace name `Ports' does not exist in the namespace `System.IO'
- android xml异常:Attribute is missing the Android namespace prefix
- colors xml: “Attribute is missing the Android namespace prefix”
- System.Collections.Specialized namespace
- The tag of<o:p> and the <?xml:namespace prefix = o /> in the html
- The System.Data Namespace
- The System.IO Namespace
- The System.Text Namespace
- The System.Collections Namespace
- The System.Web.Services Namespace
- The System.Xml Namespace
- GOOGLE的彩蛋--你知道么--强烈推荐
- 又发现了一个看网络电视的好软件
- Sun的ajax介绍,以及一些用途
- Google 发现的十大真理
- 互惠链接与链接广泛度
- 外部链接指向的讨论
- sql server 订阅和发布
- 每一份私下的努力,都会有倍增的回收,在公共面前都会被表扬出来