XmlTextReader 建構函式
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
初始化一個新的實例。XmlTextReader
多載
備註
備註
建議您使用 XmlReader 方法來建立XmlReader.Create實例,以利用新功能。
XmlTextReader()
初始化一個新的實例。XmlTextReader
protected:
XmlTextReader();
protected XmlTextReader();
Protected Sub New ()
另請參閱
適用於
XmlTextReader(String, XmlNodeType, XmlParserContext)
初始化一個新的類別實例 XmlTextReader ,包含指定的字串、 XmlNodeType、 XmlParserContext。
public:
XmlTextReader(System::String ^ xmlFragment, System::Xml::XmlNodeType fragType, System::Xml::XmlParserContext ^ context);
public XmlTextReader(string xmlFragment, System.Xml.XmlNodeType fragType, System.Xml.XmlParserContext? context);
public XmlTextReader(string xmlFragment, System.Xml.XmlNodeType fragType, System.Xml.XmlParserContext context);
new System.Xml.XmlTextReader : string * System.Xml.XmlNodeType * System.Xml.XmlParserContext -> System.Xml.XmlTextReader
Public Sub New (xmlFragment As String, fragType As XmlNodeType, context As XmlParserContext)
參數
- xmlFragment
- String
包含 XML 片段的字串,要解析。
- fragType
- XmlNodeType
XML XmlNodeType 片段的 這也決定了片段串可包含的內容。 (見下表。)
- context
- XmlParserContext
在 XmlParserContext 其中,要解析的 xmlFragment 。 這包括 XmlNameTable to use、編碼、命名空間範圍、當前 xml:lang範圍和範圍 xml:space 。
例外狀況
fragType 不是 Element、 Attribute或 DocumentXmlNodeType。
xmlFragment 為 null。
範例
以下範例解析一個 XML 片段。 它使用 和 XmlParserContext 來 XmlNamespaceManager 處理命名空間的解析。
using System;
using System.IO;
using System.Xml;
public class Sample
{
public static void Main()
{
//Create the XML fragment to be parsed.
string xmlFrag ="<book> " +
"<title>Pride And Prejudice</title>" +
"<bk:genre>novel</bk:genre>" +
"</book>";
//Create the XmlNamespaceManager.
NameTable nt = new NameTable();
XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt);
nsmgr.AddNamespace("bk", "urn:sample");
//Create the XmlParserContext.
XmlParserContext context = new XmlParserContext(null, nsmgr, null, XmlSpace.None);
//Create the reader.
XmlTextReader reader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context);
//Parse the XML. If they exist, display the prefix and
//namespace URI of each element.
while (reader.Read()){
if (reader.IsStartElement()){
if (reader.Prefix==String.Empty)
{
Console.WriteLine("<{0}>", reader.LocalName);
}
else
{
Console.Write("<{0}:{1}>", reader.Prefix, reader.LocalName);
Console.WriteLine(" The namespace URI is " + reader.NamespaceURI);
}
}
}
//Close the reader.
reader.Close();
}
} // End class
Imports System.IO
Imports System.Xml
public class Sample
public shared sub Main()
'Create the XML fragment to be parsed.
Dim xmlFrag as string ="<book> " & _
"<title>Pride And Prejudice</title>" & _
"<bk:genre>novel</bk:genre>" & _
"</book>"
'Create the XmlNamespaceManager.
Dim nt as NameTable = new NameTable()
Dim nsmgr as XmlNamespaceManager = new XmlNamespaceManager(nt)
nsmgr.AddNamespace("bk", "urn:sample")
'Create the XmlParserContext.
Dim context as XmlParserContext = new XmlParserContext(nothing, nsmgr, nothing, XmlSpace.None)
'Create the reader.
Dim reader as XmlTextReader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context)
'Parse the XML. If they exist, display the prefix and
'namespace URI of each element.
while (reader.Read())
if (reader.IsStartElement())
if (reader.Prefix=String.Empty)
Console.WriteLine("<{0}>", reader.LocalName)
else
Console.Write("<{0}:{1}>", reader.Prefix, reader.LocalName)
Console.WriteLine(" The namespace URI is " + reader.NamespaceURI)
end if
end if
end while
'Close the reader.
reader.Close()
end sub
end class
備註
備註
建議您使用 XmlReader 方法來建立XmlReader.Create實例,以利用新功能。
此建構器會將給定字串解析為 XML 的片段。 如果 XML 片段是元素或屬性,你可以繞過根層規則,取得格式良好的 XML 文件。 此構造子可處理從 返回的 ReadInnerXml字串。
下表列出了每種不同節點類型的有效值 fragType ,以及讀取器如何解析。
| XmlNodeType | 片段可能包含 |
|---|---|
| 元素 | 任何有效的元素內容(例如,元素、註解、處理指令、CDATA 區段、文字及實體參考的任意組合)。 也可以提供 XML 宣告。 這讓你能指定 XML 片段的編碼方式,而不必在物件上 XmlParserContext 設定。 |
| Attribute | 屬性的值(引號內的部分)。 |
| 文件 | 整個 XML 文件的內容。 這會強制執行文件層級的規則。 |
另請參閱
適用於
XmlTextReader(String, TextReader, XmlNameTable)
初始化一個新的類別實例 XmlTextReader ,並以指定的 URL TextReaderXmlNameTable和 。
public:
XmlTextReader(System::String ^ url, System::IO::TextReader ^ input, System::Xml::XmlNameTable ^ nt);
public XmlTextReader(string url, System.IO.TextReader input, System.Xml.XmlNameTable nt);
new System.Xml.XmlTextReader : string * System.IO.TextReader * System.Xml.XmlNameTable -> System.Xml.XmlTextReader
Public Sub New (url As String, input As TextReader, nt As XmlNameTable)
參數
- input
- TextReader
裡面 TextReader 包含要讀取的 XML 資料。
- nt
- XmlNameTable
使用。XmlNameTable
例外狀況
nt 值是 null。
備註
備註
建議您使用 XmlReader 方法來建立XmlReader.Create實例,以利用新功能。
假設 已經 TextReader 設定為正確的編碼。 此方法用於已從串流讀取部分內容的多段 MIME 情境中的用戶端。
另請參閱
適用於
XmlTextReader(String, Stream, XmlNameTable)
初始化一個新的類別實例 XmlTextReader ,並以指定的 URL、stream 和 XmlNameTable。
public:
XmlTextReader(System::String ^ url, System::IO::Stream ^ input, System::Xml::XmlNameTable ^ nt);
public XmlTextReader(string url, System.IO.Stream input, System.Xml.XmlNameTable nt);
new System.Xml.XmlTextReader : string * System.IO.Stream * System.Xml.XmlNameTable -> System.Xml.XmlTextReader
Public Sub New (url As String, input As Stream, nt As XmlNameTable)
參數
- input
- Stream
包含要讀取的 XML 資料的串流。
- nt
- XmlNameTable
使用。XmlNameTable
例外狀況
或nt值input為 null。
備註
備註
建議您使用 XmlReader 方法來建立XmlReader.Create實例,以利用新功能。
另請參閱
適用於
XmlTextReader(Stream, XmlNodeType, XmlParserContext)
初始化一個新的類別實例 XmlTextReader ,包含指定的串流、 XmlNodeType和 XmlParserContext。
public:
XmlTextReader(System::IO::Stream ^ xmlFragment, System::Xml::XmlNodeType fragType, System::Xml::XmlParserContext ^ context);
public XmlTextReader(System.IO.Stream xmlFragment, System.Xml.XmlNodeType fragType, System.Xml.XmlParserContext? context);
public XmlTextReader(System.IO.Stream xmlFragment, System.Xml.XmlNodeType fragType, System.Xml.XmlParserContext context);
new System.Xml.XmlTextReader : System.IO.Stream * System.Xml.XmlNodeType * System.Xml.XmlParserContext -> System.Xml.XmlTextReader
Public Sub New (xmlFragment As Stream, fragType As XmlNodeType, context As XmlParserContext)
參數
- xmlFragment
- Stream
包含 XML 片段的串流。
- fragType
- XmlNodeType
XML XmlNodeType 片段的 這也決定了碎片可能包含的是什麼。 (見下表。)
- context
- XmlParserContext
在 XmlParserContext 其中,要解析的 xmlFragment 。 這包括 XmlNameTable to use、編碼、命名空間範圍、當前 xml:lang範圍和範圍 xml:space 。
例外狀況
fragType 不是元素、屬性或文件 XmlNodeType。
xmlFragment 為 null。
備註
備註
建議您使用 XmlReader 方法來建立XmlReader.Create實例,以利用新功能。
此建構器會將給定字串解析為 XML 的片段。 如果 XML 片段是元素或屬性,你可以繞過根層規則,取得格式良好的 XML 文件。
下表列出了 的 fragType有效值。
| XmlNodeType | 片段可能包含 |
|---|---|
Element |
任何有效的元素內容(例如,元素、註解、處理指令、CDATA 區段、文字及實體參考的任意組合)。 也可以提供 XML 宣告。 這讓你能指定 XML 片段的編碼方式,而不必在物件上 XmlParserContext 設定。 |
Attribute |
屬性的值(引號內的部分)。 |
Document |
整個 XML 文件的內容。 這會強制執行文件層級的規則。 |
讀取器會利用以下方法來判斷串流的編碼方式。
檢查 XmlParserContext.Encoding 屬性以確定編碼。
若
Encoding屬性為null,讀取器會檢查串流開頭是否有位元組序標記。若
Encoding屬性為null,且未找到位元組順序標記,讀取器會假設串流以 UTF-8 編碼。
另請參閱
適用於
XmlTextReader(String, TextReader)
初始化一個新的類別實例 XmlTextReader ,並以指定的 URL 和 TextReader。
public:
XmlTextReader(System::String ^ url, System::IO::TextReader ^ input);
public XmlTextReader(string url, System.IO.TextReader input);
new System.Xml.XmlTextReader : string * System.IO.TextReader -> System.Xml.XmlTextReader
Public Sub New (url As String, input As TextReader)
參數
- input
- TextReader
裡面 TextReader 包含要讀取的 XML 資料。
備註
備註
建議您使用 XmlReader 方法來建立XmlReader.Create實例,以利用新功能。
假設 已經 TextReader 設定為正確的編碼。 此方法用於已從串流讀取部分內容的多段 MIME 情境中的用戶端。
另請參閱
適用於
XmlTextReader(String, Stream)
初始化一個以指定 URL 和串流的新類別實例 XmlTextReader 。
public:
XmlTextReader(System::String ^ url, System::IO::Stream ^ input);
public XmlTextReader(string url, System.IO.Stream input);
new System.Xml.XmlTextReader : string * System.IO.Stream -> System.Xml.XmlTextReader
Public Sub New (url As String, input As Stream)
參數
- input
- Stream
包含要讀取的 XML 資料的串流。
例外狀況
input 為 null。
備註
備註
建議您使用 XmlReader 方法來建立XmlReader.Create實例,以利用新功能。
另請參閱
適用於
XmlTextReader(String, XmlNameTable)
初始化一個新的類別實例 XmlTextReader ,使用指定的檔案和 XmlNameTable。
public:
XmlTextReader(System::String ^ url, System::Xml::XmlNameTable ^ nt);
public XmlTextReader(string url, System.Xml.XmlNameTable nt);
new System.Xml.XmlTextReader : string * System.Xml.XmlNameTable -> System.Xml.XmlTextReader
Public Sub New (url As String, nt As XmlNameTable)
參數
- url
- String
包含 XML 資料的檔案 URL。
- nt
- XmlNameTable
使用。XmlNameTable
例外狀況
nt 值是 null。
找不到指定的檔案。
找不到部分檔名或目錄。
url 是空字串。
url 不是有效的 URI。
備註
備註
建議您使用 XmlReader 方法來建立XmlReader.Create實例,以利用新功能。
另請參閱
適用於
XmlTextReader(Stream, XmlNameTable)
初始化一個新的類別實例 XmlTextReader ,並使用指定的串流與 XmlNameTable。
public:
XmlTextReader(System::IO::Stream ^ input, System::Xml::XmlNameTable ^ nt);
public XmlTextReader(System.IO.Stream input, System.Xml.XmlNameTable nt);
new System.Xml.XmlTextReader : System.IO.Stream * System.Xml.XmlNameTable -> System.Xml.XmlTextReader
Public Sub New (input As Stream, nt As XmlNameTable)
參數
- input
- Stream
包含要讀取的 XML 資料的串流。
- nt
- XmlNameTable
使用。XmlNameTable
例外狀況
或nt值input為 null。
備註
備註
建議您使用 XmlReader 方法來建立XmlReader.Create實例,以利用新功能。
解 XmlTextReader 碼流時使用 System.Text.Encoding。
如果你指定一個名稱表,這個建構器會使用該表中已定義的名稱。
另請參閱
適用於
XmlTextReader(XmlNameTable)
使用指定的 XmlTextReader,初始化 XmlNameTable 類別的新實例。
protected:
XmlTextReader(System::Xml::XmlNameTable ^ nt);
protected XmlTextReader(System.Xml.XmlNameTable nt);
new System.Xml.XmlTextReader : System.Xml.XmlNameTable -> System.Xml.XmlTextReader
Protected Sub New (nt As XmlNameTable)
參數
- nt
- XmlNameTable
使用。XmlNameTable
備註
備註
建議您使用 XmlReader 方法來建立XmlReader.Create實例,以利用新功能。
另請參閱
適用於
XmlTextReader(String)
初始化該類別的新實例 XmlTextReader ,並使用指定的檔案。
public:
XmlTextReader(System::String ^ url);
public XmlTextReader(string url);
new System.Xml.XmlTextReader : string -> System.Xml.XmlTextReader
Public Sub New (url As String)
參數
例外狀況
找不到指定的檔案。
找不到部分檔名或目錄。
url 是空字串。
url 不是有效的 URI。
範例
以下範例讀取一個 XML 檔案並顯示每個節點。
using System;
using System.IO;
using System.Xml;
public class Sample {
private const String filename = "items.xml";
public static void Main() {
XmlTextReader reader = null;
try {
// Load the reader with the data file and ignore all white space nodes.
reader = new XmlTextReader(filename);
reader.WhitespaceHandling = WhitespaceHandling.None;
// Parse the file and display each of the nodes.
while (reader.Read()) {
switch (reader.NodeType) {
case XmlNodeType.Element:
Console.Write("<{0}>", reader.Name);
break;
case XmlNodeType.Text:
Console.Write(reader.Value);
break;
case XmlNodeType.CDATA:
Console.Write("<![CDATA[{0}]]>", reader.Value);
break;
case XmlNodeType.ProcessingInstruction:
Console.Write("<?{0} {1}?>", reader.Name, reader.Value);
break;
case XmlNodeType.Comment:
Console.Write("<!--{0}-->", reader.Value);
break;
case XmlNodeType.XmlDeclaration:
Console.Write("<?xml version='1.0'?>");
break;
case XmlNodeType.Document:
break;
case XmlNodeType.DocumentType:
Console.Write("<!DOCTYPE {0} [{1}]", reader.Name, reader.Value);
break;
case XmlNodeType.EntityReference:
Console.Write(reader.Name);
break;
case XmlNodeType.EndElement:
Console.Write("</{0}>", reader.Name);
break;
}
}
}
finally {
if (reader!=null)
reader.Close();
}
}
} // End class
Option Strict
Option Explicit
Imports System.IO
Imports System.Xml
'Reads an XML document
Public Class Sample
Private Const filename As String = "items.xml"
Public Shared Sub Main()
Dim reader As XmlTextReader = Nothing
Try
' Load the reader with the data file and ignore all white space nodes.
reader = New XmlTextReader(filename)
reader.WhitespaceHandling = WhitespaceHandling.None
' Parse the file and display each of the nodes.
While reader.Read()
Select Case reader.NodeType
Case XmlNodeType.Element
Console.Write("<{0}>", reader.Name)
Case XmlNodeType.Text
Console.Write(reader.Value)
Case XmlNodeType.CDATA
Console.Write("<![CDATA[{0}]]>", reader.Value)
Case XmlNodeType.ProcessingInstruction
Console.Write("<?{0} {1}?>", reader.Name, reader.Value)
Case XmlNodeType.Comment
Console.Write("<!--{0}-->", reader.Value)
Case XmlNodeType.XmlDeclaration
Console.Write("<?xml version='1.0'?>")
Case XmlNodeType.Document
Case XmlNodeType.DocumentType
Console.Write("<!DOCTYPE {0} [{1}]", reader.Name, reader.Value)
Case XmlNodeType.EntityReference
Console.Write(reader.Name)
Case XmlNodeType.EndElement
Console.Write("</{0}>", reader.Name)
End Select
End While
Finally
If Not (reader Is Nothing) Then
reader.Close()
End If
End Try
End Sub
End Class
範例中使用檔案 items.xml,作為輸入。
<?xml version="1.0"?>
<!-- This is a sample XML document -->
<!DOCTYPE Items [<!ENTITY number "123">]>
<Items>
<Item>Test with an entity: &number;</Item>
<Item>test with a child element <more/> stuff</Item>
<Item>test with a CDATA section <![CDATA[<456>]]> def</Item>
<Item>Test with an char entity: A</Item>
<!-- Fourteen chars in this element.-->
<Item>1234567890ABCD</Item>
</Items>
備註
備註
建議您使用 XmlReader 方法來建立XmlReader.Create實例,以利用新功能。
如果檔案位於需要存取憑證的資源上,請使用該 XmlResolver 屬性指定必要的憑證。
備註
在 .NET Framework 1.1 版本中,部分受信任的程式碼無法設定該 XmlResolver 屬性。 解決方法是建立一個具備必要憑證的 ,XmlUrlResolver將 URI 傳到方法,XmlUrlResolver.GetEntity然後用所得物件Stream建構。XmlTextReader 這個解決方法在以下 C# 程式碼中說明。
// Create a resolver with the necessary credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
NetworkCredential nc = new NetworkCredential(SecurelyStoredUserName, SecurelyStoredPassword, SecurelyStoredDomain);
resolver.Credentials = nc;
// Get a Stream object containing the XML file.
Uri myUri = new Uri ("http://myServer/data/books.xml");
Stream s=(Stream)resolver.GetEntity(myUri, null, typeof(Stream));
// Construct a reader using the Stream object.
XmlTextReader reader = new XmlTextReader(s);
另請參閱
適用於
XmlTextReader(TextReader)
使用指定的 XmlTextReader,初始化 TextReader 類別的新實例。
public:
XmlTextReader(System::IO::TextReader ^ input);
public XmlTextReader(System.IO.TextReader input);
new System.Xml.XmlTextReader : System.IO.TextReader -> System.Xml.XmlTextReader
Public Sub New (input As TextReader)
參數
- input
- TextReader
裡面 TextReader 包含要讀取的 XML 資料。
範例
以下範例使用類別將 XML 字串載入物件StringReader。XmlTextReader
using System;
using System.IO;
using System.Xml;
public class Sample {
public static void Main() {
string xmlData =
@"<book>
<title>Oberon's Legacy</title>
<price>5.95</price>
</book>";
// Create the reader.
XmlTextReader reader = new XmlTextReader(new StringReader(xmlData));
reader.WhitespaceHandling = WhitespaceHandling.None;
// Display each element node.
while (reader.Read()){
switch (reader.NodeType){
case XmlNodeType.Element:
Console.Write("<{0}>", reader.Name);
break;
case XmlNodeType.Text:
Console.Write(reader.Value);
break;
case XmlNodeType.EndElement:
Console.Write("</{0}>", reader.Name);
break;
}
}
// Close the reader.
reader.Close();
}
} // End class
Imports System.IO
Imports System.Xml
public class Sample
public shared sub Main()
Dim xmlData as string
xmlData = "<book>" & _
" <title>Oberon's Legacy</title>" & _
" <price>5.95</price>" & _
"</book>"
' Create the reader.
Dim reader as XmlTextReader = new XmlTextReader(new StringReader(xmlData))
reader.WhitespaceHandling = WhitespaceHandling.None
' Display each element node.
while reader.Read()
select case reader.NodeType
case XmlNodeType.Element
Console.Write("<{0}>", reader.Name)
case XmlNodeType.Text
Console.Write(reader.Value)
case XmlNodeType.EndElement
Console.Write("</{0}>", reader.Name)
end select
end while
' Close the reader.
reader.Close()
end sub
end class
備註
備註
建議您使用 XmlReader 方法來建立XmlReader.Create實例,以利用新功能。
假設 已經 TextReader 設定為正確的編碼。 此方法用於已從串流讀取部分內容的多段 MIME 情境中的用戶端。
另請參閱
適用於
XmlTextReader(Stream)
初始化一個包含指定串流的類別新實例 XmlTextReader 。
public:
XmlTextReader(System::IO::Stream ^ input);
public XmlTextReader(System.IO.Stream input);
new System.Xml.XmlTextReader : System.IO.Stream -> System.Xml.XmlTextReader
Public Sub New (input As Stream)
參數
- input
- Stream
包含要讀取的 XML 資料的串流。
例外狀況
input 為 null。
備註
備註
建議您使用 XmlReader 方法來建立XmlReader.Create實例,以利用新功能。
解 XmlTextReader 碼流時使用 System.Text.Encoding。
另請參閱
適用於
XmlTextReader(TextReader, XmlNameTable)
初始化一個新的類別實例 XmlTextReader ,並指定為 TextReaderXmlNameTable和 。
public:
XmlTextReader(System::IO::TextReader ^ input, System::Xml::XmlNameTable ^ nt);
public XmlTextReader(System.IO.TextReader input, System.Xml.XmlNameTable nt);
new System.Xml.XmlTextReader : System.IO.TextReader * System.Xml.XmlNameTable -> System.Xml.XmlTextReader
Public Sub New (input As TextReader, nt As XmlNameTable)
參數
- input
- TextReader
裡面 TextReader 包含要讀取的 XML 資料。
- nt
- XmlNameTable
使用。XmlNameTable
例外狀況
nt 值是 null。
備註
備註
建議您使用 XmlReader 方法來建立XmlReader.Create實例,以利用新功能。
假設 已經 TextReader 設定為正確的編碼。 此方法用於已從串流讀取部分內容的多段 MIME 情境中的用戶端。